功能區概觀
更新:2007 年 11 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
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:自訂 Microsoft Office 功能表