功能區概觀

更新:2007 年 11 月

適用於

本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。

專案類型

  • 文件層級專案

  • 應用程式層級專案

Microsoft Office 版本

  • Excel 2007

  • Word 2007

  • Outlook 2007

  • PowerPoint 2007

如需詳細資訊,請參閱依應用程式和專案類型提供的功能

2007 Microsoft Office System 引入了一種稱為功能區的使用者介面 (UI) 項目。您可以使用 Visual Studio Tools for Office 自訂下列應用程式的功能區:

  • Microsoft Office Excel 2007

  • Microsoft Office Outlook 2007

  • Microsoft Office PowerPoint 2007

  • Microsoft Office Word 2007

關於 Microsoft Office System 功能區

功能區是一種將相關命令組合在一起的方法,這種方法可以讓使用者更容易找到這些命令。命令會在功能區上以控制項的形式出現。控制項會組合成群組,顯示在應用程式視窗頂端的水平橫列上。相關的群組會組織在索引標籤上。

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

自訂 Microsoft Office 功能區

若要自訂功能區,請將下列其中一個功能區項目加入 Visual Studio Tools for Office 專案中。

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

  • 功能區 (XML)

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

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

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

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

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

    注意事項:

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

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

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

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

功能區 (XML) 項目

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

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

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

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

  • 自訂快速存取工具列。

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

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

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

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

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

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

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

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

更新程式碼

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

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

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

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

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

  • 建立 Outlook 偵測器的功能區。

    注意事項:

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

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

建立 Outlook 偵測器的功能區

Outlook 並不會將功能區顯示在主應用程式視窗中;而是在偵測器中顯示功能區。您可以將每個偵測器的功能區加入至 Outlook 增益集專案。如需詳細資訊,請參閱自訂 Outlook 的功能區

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

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

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

注意事項:

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

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:將功能區設計工具的功能區匯出到功能區 XML

HOW TO:變更功能區索引標籤的順序

HOW TO:自訂內建索引標籤

HOW TO:自訂 Microsoft Office 功能表

HOW TO:開始自訂功能區

HOW TO:顯示增益集使用者介面錯誤

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

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

逐步解說:使用功能區 XML 建立自訂的索引標籤

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

概念

在執行階段存取功能區

功能區設計工具

功能區物件模型概觀

功能區 XML

自訂 Outlook 的功能區