功能區 – 橫跨程式視窗頂端、包含命令群組的帶狀區 – 是 Microsoft Office Fluent 使用者介面的元件。 Office Fluent 使用者介面為 Access 中的命令提供單一首頁。
當您開始使用 Access 建置更進階的應用程式時,您可能會決定要自訂 Office Fluent 功能區,讓應用程式更容易使用。 例如,您可以隱藏部分或所有預設索引標籤,讓使用者無法使用特定命令,也可以建立只包含您想要使用的命令的新自訂索引標籤。
在所有使用 Office Fluent 使用者介面的 Microsoft Office 程式中,您可以使用可延伸標記語言 (XML) 自訂功能區。 因此,一些 XML 的基本知識會很有幫助。 本文不涉及 XML 概念,但提供您基本的功能區自訂程序和一些範例 XML,您可以修改以符合您的需求。
本文著重於如何使用 XML 建立您自己的自訂功能區。 如果您想要使用內建工具來修改現有的功能區,請參閱 在 Office 中自訂功能區。
您想要做什麼?
了解功能區自訂技術
在 Access 中,您可以自訂功能區,方法是建立自訂 XML,然後新增程式碼或設定指示 Access 在建立功能區時使用該 XML 的資料庫屬性。 您可以使用 XML 來隱藏現有的索引標籤,並新增新的索引標籤、命令群組和命令。 本文中的程序說明如何新增內建於 Access (的命令,例如尋找、排序和儲存) ,以及如何新增執行您自己撰寫的 Access 巨集的命令。
您可以將 XML 儲存在數個位置,但最簡單的方法之一是將其儲存在目前資料庫中的系統資料表中。 此程序包括建立名為 USysRibbons 的系統資料表、新增您的功能區 XML,然後指定自訂功能區是針對整個資料庫顯示,還是針對特定表單或報表顯示。 您可以定義多個自訂功能區 — 一個用於整個應用程式,另一個功能區用於資料庫中的個別表單或報告。
建立並套用自訂功能區
下列各節提供建立及套用自訂功能區的逐步程序。
開始之前
在 [瀏覽窗格] 中顯示系統資料表 根據預設,系統資料表不會顯示在 [瀏覽窗格] 中,因此您必須先變更 [ 瀏覽選項 ] 對話方塊中的設定,以便在建立 USysRibbons 資料表後看到它。 請使用下列程序:
- 在 Access 中開啟資料庫後,以滑鼠右鍵按一下 [瀏覽窗格] 頂端的 [瀏覽列],然後按一下捷徑功能表上的 [ 瀏覽選項 ]。
- 在 [瀏覽選項] 對話方塊的 [顯示選項] 底下,選取 [顯示系統物件] 核取方塊,然後按一下 [確定]。
Access 系統資料表會出現在 [瀏覽窗格] 中。
啟用增益集使用者介面錯誤訊息的顯示 在建立和疑難排解功能區自訂 XML 時,錯誤訊息是重要的資訊來源,因此建議讓 Access 顯示錯誤訊息。 請使用下列程序:
- 按一下 [檔案>選項]。
- 按一下 [用戶端設定]。
- 在 [一般] 底下,選取 [ 顯示增益集使用者介面錯誤 ] 核取方塊,然後按一下 [確定]。
建立 USysRibbons 系統資料表
使用此程序建立 USysRibbons 系統資料表。 稍後,您會使用此資料表來儲存功能區自訂 XML。
在 [建立] 索引標籤的 [資料表] 群組中,按一下 [資料表設計]。
將下列欄位新增至資料表。 請務必完全按照畫面所示輸入欄位名稱。
欄位名稱 類型 [欄位大小] 識別碼 自動編號 長整數 RibbonName 文字 255 RibbonXml 備忘 如有需要,您可以新增更多欄位至此資料表,例如 [註解] 欄位,描述功能區 XML 的功能。
選取 識別碼 欄位。 在 [設計] 索引標籤的 [工具] 群組中,按一下 [主索引鍵]。
在 快速存取工具列上,按一下 [儲存],或按 CTRL+S。 將新資料表命名為 USysRibbons。
將功能區自訂 XML 新增至 USysRibbons 資料表
針對本範例的用途,假設您想要防止資料庫使用者使用 [建立 ] 索引標籤上的任何工具。此外,您想要建立一個名為 [ 自訂索引標籤 ] 的新索引標籤,上面只有 [貼上] 命令,如下圖所示。
下列程序中的 XML 會建立此設定。
在 [瀏覽窗格] 中,以滑鼠右鍵按一下 USysRibbons 資料表,然後按一下捷徑功能表上的 [ 資料工作表檢視 ]。
將下列資料新增至資料表。 您可以從本文複製 XML 範例,並直接將其貼到表格中。
識別碼 RibbonName RibbonXML ([自動編號]) 我的索引標籤 <customUI xmlns=“http://schemas.microsoft.com /office/2006/01/customui”><ribbon startFromScratch=“false”tabs<<>> tab idMso=“TabCreate” visible=“false” /><tab id=“dbCustomTab” label=“自訂索引標籤” visible=“true”<>group id=“dbCustomGroup” label=“自訂群組”><控制項 idMso=“貼上” label=“內建貼上” enabled=“true”/<>/group<>/tab<>/tabs<>/ribbon></customUI> 這個 XML 會先指示 Access 不要「從頭開始」,也就是指定 Access 應該顯示預設的功能區索引標籤。 然後,它會告知 Access 只隱藏 [ 建立 ] 索引標籤) (的其中一個預設索引標籤。 最後,它會建立名為「自訂索引標籤」的新功能區索引標籤、將名為「自訂群組」的命令群組新增至該索引標籤,並將 [貼上] 命令新增至群組。 如需此範例以及如何自訂它以符合您的需求的詳細資訊,請參閱 瞭解 XML 範例一節。
關閉 USysRibbons 資料表,然後關閉並重新開啟資料庫。
套用自訂功能區
現在自訂功能區 XML 已儲存在資料表中,請執行下列其中一項動作,視您是要將功能區套用至整個資料庫或特定表單或報表而定。
將自訂功能區套用至整個資料庫
- 按一下 [檔案>選項]。
- 按一下 [目前資料庫],然後在 [功能 區和工具列選項] 下,選取 [ 功能區名稱 ] 清單,然後按一下您想要的功能區,在這個例子中是 [我的索引標籤]。
- 按一下 [確定]。
將自訂功能區套用至特定表單或報表
- 在 [瀏覽窗格] 中,以滑鼠右鍵按一下您要套用自訂功能區的表單或報表,然後按一下捷徑功能表上的 [設計檢視 ]。
- 如果沒有顯示屬性表,請按 F4 以顯示屬性表。
- 屬性工作表頂端的 [選取類型] 底下,確定已在清單中選取 [ 表單 ] 或 [報表) (物件類型。
- 在屬性工作表的 [ 其他 ] 索引標籤上,按一下 [ 功能區名稱 ] 清單,然後按一下您要在開啟表單或報表時顯示的功能區, (在此案例中為 [我的索引標籤 ]) 。
- 在 快速存取工具列上,按一下 [儲存],或按 CTRL+S。
- 關閉表單或報表,然後在 [瀏覽窗格] 中按兩下以重新開啟。
隨即顯示您選取的功能區。
確認自訂功能區運作正常之後,您可以執行下列操作,再次隱藏系統資料表:
- 以滑鼠右鍵按一下 [瀏覽窗格] 頂端的 [瀏覽列],然後按一下捷徑功能表上的 [ 瀏覽選項 ]。
- 在 [瀏覽選項] 對話方塊的 [顯示選項] 底下,清除 [顯示系統物件] 核取方塊,然後按一下 [確定]。
還原預設功能區
若要停止使用自訂功能區並還原預設功能區,請視整個應用程式或特定表單或報表使用自訂功能區,使用下列其中一個程序。
還原預設的應用程式層級功能區
- 按一下 [檔案>選項]。
- 按一下 [目前資料庫],然後在 [功能 區和工具列選項] 下,刪除 [ 功能區名稱] 方塊的內容。
- 關閉資料庫後再重新開啟。
Access 會顯示其預設的功能區索引標籤。 除非您將功能區 XML 刪除,否則功能區 XML 會保留在 USysRibbons 資料表中,因此如果您想要恢復自訂功能區,您可以將 [ 功能區名稱 ] 選項設回先前所包含的值。
還原表單或報表的預設功能區
- 在 [設計檢視] 中開啟表單或報表。
- 如果沒有顯示屬性表,請按 F4 以顯示屬性表。
- 屬性工作表頂端的 [選取類型] 底下,確定已在清單中選取 [ 表單 ] 或 [報表) (物件類型。
- 在屬性工作表的 [ 其他 ] 索引標籤上,刪除 [ 功能區名稱 ] 屬性方塊的內容。
- 儲存、關閉,然後重新開啟表單或報表。
除非您將功能區 XML 刪除,否則功能區 XML 會保留在 USysRibbons 資料表中,因此如果您想要恢復自訂功能區,您可以將 [ 功能區名稱 ] 屬性中的值設回先前所包含的值。
了解 XML 範例
以下是本文稍早使用的 XML 範例,以及它所建立自訂功能區的圖例。
| <customUI xmlns=“http://schemas.microsoft.com /office/2006/01/customui”><ribbon startFromScratch=“false”tabs<<>> tab idMso=“TabCreate” visible=“false” /><tab id=“dbCustomTab” label=“自訂索引標籤” visible=“true”<>group id=“dbCustomGroup” label=“自訂群組”><控制項 idMso=“貼上” label=“內建貼上” enabled=“true”/<>/group<>/tab<>/tabs<>/ribbon></customUI> |
|---|
在此範例中,XML 的第二行會將 startFromScratch 屬性設定為 False。 將值設定為 False 可確保 Access 會保留所有現有的索引標籤不變,並將任何新索引標籤新增至現有索引標籤的右側。 將此屬性設定為 True 會移除所有現有的索引標籤,並僅顯示您在 XML 中建立的索引標籤。 即使您將 startFromScratch 屬性設為 False,您仍然可以隱藏個別索引標籤。 XML 的第四行就可以看到這一點,它隱藏了內建的 [建立 ] 索引標籤。其餘行會建立自訂索引標籤和自訂群組,然後使用下列 XML 行將內建的 [貼上] 命令新增至群組。
<control idMso="Paste" label="Built-in Paste" enabled="true"/> |
|---|
將其他群組或控制項新增至自訂功能區 您可以新增類似的 XML 行,並替換不同的 idMso 和標籤值,以將更多群組和 控制 項新增至功能區。 例如,若要建立將目前選取物件匯出至 Excel 的控制項,請使用下列 XML。
<control idMso="ExportExcel" label="Export to Excel" enabled="true"/> |
|---|
若要將控制項新增至與 [貼上 ] 命令相同的群組,請在建立 [ 貼上 ] 命令的行之前或之後插入新的 XML 行。 若要建立新群組,您可以複製、貼上及修改在上方建立 自訂群組 群組的 XML。 下列範例示範將兩個控制項新增至自訂群組的 XML。
| <customUI xmlns=“http://schemas.microsoft.com /office/2006/01/customui”>ribbon startFromScratch=“false”<>tabs<>tab idMso=“TabCreate” visible=“false” /<>tab id=“dbCustomTab” label=“自訂索引標籤” visible=“true”<>group id=“dbCustomGroup” label=“自訂群組”<>控制項 idMso=“貼上” label=“內建貼上” enabled=“true”/></群組<>group id=“dbCustomGroup2” label=“Another Custom Group”><<control idMso=“ImportExcel” label=“從 Excel 匯入” enabled=“true”/><control idMso=“ExportExcel” label=“匯出至 Excel” enabled=“true”/<>/group></tab></tabs></ribbon></customUI> |
|---|
這個 XML 會將另一個群組新增至 自訂索引標籤。如下圖所示,新的群組包含兩個控制項 - 一個用於啟動 Excel 的匯入作業,另一個用於啟動至 Excel 的匯出作業。
注意
自訂功能區中的每個 群組識別碼 和 索引標籤識別碼 值都必須是唯一的。
瞭解命令的 idMso 值 若要學習內建命令的 idMso 值,請使用下列程序:
- 按一下 [檔案>選項]。
- 按一下 [自訂功能區 ] 或 [快速存取工具列]。
- 將指標移到您想要資訊的項目上。 Access 會在工具提示的括弧中顯示控制項的 idMso 值。
新增命令以執行 Access 巨集 您可以新增執行 Access 巨集的命令,為自訂功能區增加更多彈性。 例如,假設您建立了名為 MyMacro 的巨集。 若要將執行巨集的命令新增至功能區,請將下列行新增至 XML。
<button id="RunMyMacro" label="Run My Macro" onAction="MyMacro"/> |
|---|
若要將控制項新增至與之前範例中 [貼上 ] 命令相同的群組,請在建立 [貼上 ] 命令的行之前或之後插入新的 XML 行。 下列範例示範新增命令的 XML。
| <customUI xmlns=“http://schemas.microsoft.com /office/2006/01/customui”><ribbon startFromScratch=“false”tabs>><< tab idMso=“TabCreate” visible=“false” /><tab id=“dbCustomTab” label=“自訂索引標籤” visible=“true”><group id=“dbCustomGroup” label=“自訂群組”><控制項 idMso=“貼上” label=“內建貼上” enabled=“true”/<>button id=“RunMyMacro” label=“執行我的巨集” onAction=“MyMacro”/<>/群組><group id=“dbCustomGroup2” label=“Another Custom Group”control>< idMso=“ImportExcel” label=“Import from Excel” enabled=“true”/<>control idMso=“ExportExcel” label=“Export to Excel” enabled=“true”/<>/group></tab></tabs></ribbon></customUI> |
|---|