功能區概觀

2007 Microsoft Office System 引入了一種稱為功能區的使用者介面 (UI) 項目。 功能區是一種將相關命令組合在一起的方法,這種方法可以讓使用者更容易找到這些命令。 命令會在功能區上以控制項的形式出現。 控制項會組合成「群組」(Group),顯示在應用程式視窗頂端的水平橫列上。 相關的群組會組織在索引標籤上。

在舊版 Microsoft Office System 中透過功能表和工具列存取的功能,現在大都可以使用功能區來存取。 如需詳細資訊,請參閱技術文件 2007 Microsoft Office System 使用者介面的開發人員概觀

**適用於:**本主題中的資訊適用於下列應用程式的文件層級專案和應用程式層級專案:Excel 2007 和 Excel 2010、InfoPath 2010、Outlook 2007 和 Outlook 2010、PowerPoint 2007 和 PowerPoint 2010、Project 2010、Visio 2010、Word 2007 和 Word 2010。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能

自訂 Microsoft Office 功能區

若要自訂功能區,請將下列其中一個功能區項目加入至 Office 專案中:

  • 功能區 (視覺化設計工具)

  • 功能區 (XML)

例如,若要自動 Excel 功能區,請將功能區項目加入 Excel 增益集專案中。

功能區 (視覺化設計工具) 項目

[功能區 (視覺化設計工具)] 項目提供進階的工具,方便您設計和開發自訂的功能區。 請使用 [功能區 (視覺化設計工具)] 項目,以下列方式自訂功能區:

  • 將自訂或內建索引標籤加入功能區中。

  • 將自訂群組加入自訂或內建索引標籤中。

    注意事項注意事項

    內建索引標籤或群組已存在 Microsoft Office 應用程式的功能區上。 例如,[資料] 索引標籤就是 Excel 的內建索引標籤。 [連線] 群組為 [資料] 索引標籤上的內建群組。

  • 將自訂控制項加入至自訂群組。

  • 將自訂控制項加入至 Microsoft Office 功能表。

如需如何使用 [功能區 (視覺化設計工具)] 項目自訂功能區的詳細資訊,請參閱功能區設計工具

功能區 (XML) 項目

如果您要使用 [功能區 (視覺化設計工具)] 項目不支援的方式自訂功能區,請使用 [功能區 (XML)] 項目。 請使用 [功能區 (XML)] 項目,以下列方式自訂功能區:

  • 將「內建」(Built-in) 群組加入至自訂索引標籤或內建索引標籤。

  • 將自訂控制項加入至內建群組。

  • 加入自訂程式碼可覆寫內建控制項的事件處理常式。

  • 自訂快速存取工具列。

  • 使用完整 ID 在增益集之間共用功能區自訂。

如需如何使用 [功能區 (XML)] 項目自訂功能區的詳細資訊,請參閱功能區 XML

將功能區設計工具的功能區匯出到功能區 XML

如果您使用功能區設計工具建立功能區,並且決定使用 [功能區 (視覺化設計工具)] 項目不支援的方式自訂功能區,則可將功能區匯出至 XML。

Visual Studio 會自動建立 [功能區 (XML)] 項目,並將功能區上每個控制項的項目和屬性填入功能區 XML 檔中。

並非功能區設計工具的 [屬性] 視窗中的所有屬性都會傳輸到功能區 XML 檔中。 例如,Visual Studio 不會匯出 [Image] 或 [Text] 屬性的值。 這是因為您必須在所匯出專案的功能區程式碼檔中建立回呼方法,才能指定影像或設定控制項文字。 Visual Studio 不會在匯出程序期間自動產生回呼方法。

此外,任何未變更的預設屬性值都不會出現在產生的功能區 XML 檔中。

如需如何將功能區匯出至 XML 的詳細資訊,請參閱 HOW TO:將功能區設計工具的功能區匯出到功能區 XML

更新程式碼

新的功能區程式碼檔案會加入至 [方案總管]。 這個檔案包含功能區 XML 類別。 您必須在這個類別的 Ribbon Callbacks 區域中建立回呼方法以處理使用者動作,例如點選按鈕。 將您的程式碼從事件處理常式移至這些回呼方法,並修改程式碼以配合功能區擴充性 (RibbonX) 程式撰寫模型 (Programming Model) 使用。 如需詳細資訊,請參閱 功能區 XML

您還必須將程式碼加入至 ThisAddIn, ThisWorkbook,或是覆寫 CreateRibbonExtensibilityObject 方法並傳回功能區 XML 類別至 Office 應用程式的 ThisDocument 類別。

如需詳細資訊,請參閱 功能區 XML

將多個功能區項目加入至專案

您可以將多個功能區項目加入至單一專案。 如果您要執行下列任一項工作,這樣做會十分實用:

  • 建立 Outlook「偵測器」(Inspector) 的功能區。 如需詳細資訊,請參閱 自訂 Outlook 的功能區

    注意事項注意事項

    偵測器是一個視窗,會在使用者執行特定工作時開啟,例如建立電子郵件訊息。

  • 選取要在執行階段顯示的功能區。

選取要在執行階段顯示的功能區

由於專案可包含多個功能區,因此您可以選取要在執行階段顯示的功能區。

若要選取執行階段要顯示的功能區,覆寫 ThisAddin, ThisWorkbook 中的 CreateRibbonExtensibilityObject 方法,或專案的 ThisDocument 類別,並且傳回您要顯示的功能區。 下列範例會檢查名為 myCondition 的欄位值,並傳回適當的功能區。

注意事項注意事項

這個範例中使用的語法會傳回使用 [功能區 (視覺化設計工具)] 項目建立的功能區。 使用 [功能區 (XML)] 項目所建立傳回功能區的語法稍有不同。 如需傳回 [功能區 (XML)] 項目的詳細資訊,請參閱功能區 XML

針對以 .NET Framework 4 為目標的專案,加入下列程式碼:

Protected Overrides Function CreateRibbonExtensibilityObject() As  _
    Microsoft.Office.Core.IRibbonExtensibility
    If myCondition = True Then
        Return Globals.Factory.GetRibbonFactory().CreateRibbonManager _
            (New Microsoft.Office.Tools.Ribbon.IRibbonExtension() _
                 {New Ribbon1()})
    Else
        Return Globals.Factory.GetRibbonFactory().CreateRibbonManager _
            (New Microsoft.Office.Tools.Ribbon.IRibbonExtension() _
                 {New Ribbon2()})
    End If
End Function
    protected override Microsoft.Office.Core.IRibbonExtensibility
CreateRibbonExtensibilityObject()
    {
        if (myCondition == true)
        {
            return Globals.Factory.GetRibbonFactory().CreateRibbonManager(
                new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] { new Ribbon1() });
        }
        else
        {
            return Globals.Factory.GetRibbonFactory().CreateRibbonManager(
                new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] { new Ribbon2() });
        }
    }

針對以 .NET Framework 3.5 為目標的專案,加入下列程式碼:

Protected Overrides Function CreateRibbonExtensibilityObject() As  _
    Microsoft.Office.Core.IRibbonExtensibility
    If myCondition = True Then
        Return New Microsoft.Office.Tools.Ribbon.RibbonManager _
            (New Microsoft.Office.Tools.Ribbon.OfficeRibbon() _
                 {New Ribbon1()})
    Else
        Return New Microsoft.Office.Tools.Ribbon.RibbonManager _
            (New Microsoft.Office.Tools.Ribbon.OfficeRibbon() _
                {New Ribbon2()})
    End If
End Function
    protected override Microsoft.Office.Core.IRibbonExtensibility
CreateRibbonExtensibilityObject()
    {
        if (myCondition == true)
        {
            return new Microsoft.Office.Tools.Ribbon.RibbonManager(
                new Microsoft.Office.Tools.Ribbon.OfficeRibbon[] 
                    { new Ribbon1() });
        }
        else
        {
            return new Microsoft.Office.Tools.Ribbon.RibbonManager(
                new Microsoft.Office.Tools.Ribbon.OfficeRibbon[] 
                    { new Ribbon2() });
        }
    }

相關主題

標題

描述

HOW TO:開始自訂功能區

示範如何自訂 Microsoft Office 應用程式的功能區,將 [功能區 (視覺化設計工具)] 或 [功能區 (XML)] 項目加入至 Office 專案。

功能區設計工具

描述如何使用功能區設計工具將自訂索引標籤、群組及控制項加入至 Microsoft Office 應用程式的功能區。

逐步解說:使用功能區設計工具建立自訂的索引標籤

示範如何使用功能區設計工具建立自訂的功能區索引標籤。 您可以使用功能區設計工具加入和放置自訂索引標籤上的控制項。

功能區物件模型概觀

提供強型別物件模型的概觀,而您可在執行階段使用這種物件模型來取得和設定功能區控制項的屬性。

逐步解說:在執行階段更新功能區中的控制項

示範如何在功能區載入 Office 應用程式之後,使用功能區物件模型更新功能區中的控制項。

自訂 Outlook 的功能區

提供自訂 Microsoft Office Outlook 中之功能區的指引。

自訂 InfoPath 的功能區

提供自訂 Microsoft Office InfoPath 中之功能區的指引。

在執行階段存取功能區

說明如何顯示、隱藏和修改功能區,以及讓使用者從自訂工作窗格、動作窗格或 Outlook 表單區域中的控制項執行程式碼。

HOW TO:變更功能區索引標籤的位置

說明如何變更功能區上的索引標籤順序。

HOW TO:自訂內建索引標籤

說明如何將群組和控制項加入至內建索引標籤。

HOW TO:自訂 Microsoft Office 功能表

說明如何將控制項加入至功能表,這個功能表會在按一下 [檔案] 索引標籤 (適用於 Office 2010) 或 [Microsoft Office 按鈕] (適用於 Office 2007) 時開啟。

HOW TO:在功能區群組中加入對話方塊啟動程式

說明如何將對話方塊啟動程式加入至功能區上的任何群組。

HOW TO:將功能區設計工具的功能區匯出到功能區 XML

說明如何從設計工具將功能區匯出至功能區 XML,以進階的方式自訂功能區。

功能區 XML

說明如何使用功能區 XML 自訂功能區。

逐步解說:使用功能區設計工具建立自訂的索引標籤

示範如何使用 [功能區 (XML)] 項目建立自訂的功能區索引標籤。