在 Access 中建立自訂功能區

Applies To
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

功能區 – 橫跨程式視窗頂端、包含命令群組的帶狀區 – 是 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 資料表後看到它。 請使用下列程序:

  1. 在 Access 中開啟資料庫後,以滑鼠右鍵按一下 [瀏覽窗格] 頂端的 [瀏覽列],然後按一下捷徑功能表上的 [ 瀏覽選項 ]。
  2. [瀏覽選項] 對話方塊的 [顯示選項] 底下,選取 [顯示系統物件] 核取方塊,然後按一下 [確定]。
    Access 系統資料表會出現在 [瀏覽窗格] 中。

啟用增益集使用者介面錯誤訊息的顯示 在建立和疑難排解功能區自訂 XML 時,錯誤訊息是重要的資訊來源,因此建議讓 Access 顯示錯誤訊息。 請使用下列程序:

  1. 按一下 [檔案>選項]。 
  2. 按一下 [用戶端設定]。 
  3. [一般] 底下,選取 [ 顯示增益集使用者介面錯誤 ] 核取方塊,然後按一下 [確定]。

建立 USysRibbons 系統資料表

使用此程序建立 USysRibbons 系統資料表。 稍後,您會使用此資料表來儲存功能區自訂 XML。

  1. [建立] 索引標籤的 [資料表] 群組中,按一下 [資料表設計]

  2. 將下列欄位新增至資料表。 請務必完全按照畫面所示輸入欄位名稱。

    欄位名稱 類型 [欄位大小]
    識別碼 自動編號 長整數
    RibbonName 文字 255
    RibbonXml 備忘
  3. 如有需要,您可以新增更多欄位至此資料表,例如 [註解] 欄位,描述功能區 XML 的功能。

  4. 選取 識別碼 欄位。 在 [設計] 索引標籤的 [工具] 群組中,按一下 [主索引鍵]

  5. 快速存取工具列上,按一下 [儲存],或按 CTRL+S。 將新資料表命名為 USysRibbons

將功能區自訂 XML 新增至 USysRibbons 資料表

針對本範例的用途,假設您想要防止資料庫使用者使用 [建立 ] 索引標籤上的任何工具。此外,您想要建立一個名為 [ 自訂索引標籤 ] 的新索引標籤,上面只有 [貼上] 命令,如下圖所示。

自訂功能區索引標籤

下列程序中的 XML 會建立此設定。

  1. 在 [瀏覽窗格] 中,以滑鼠右鍵按一下 USysRibbons 資料表,然後按一下捷徑功能表上的 [ 資料工作表檢視 ]。

  2. 將下列資料新增至資料表。 您可以從本文複製 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>
  3. 這個 XML 會先指示 Access 不要「從頭開始」,也就是指定 Access 應該顯示預設的功能區索引標籤。 然後,它會告知 Access 只隱藏 [ 建立 ] 索引標籤) (的其中一個預設索引標籤。 最後,它會建立名為「自訂索引標籤」的新功能區索引標籤、將名為「自訂群組」的命令群組新增至該索引標籤,並將 [貼上] 命令新增至群組。 如需此範例以及如何自訂它以符合您的需求的詳細資訊,請參閱 瞭解 XML 範例一節。

  4. 關閉 USysRibbons 資料表,然後關閉並重新開啟資料庫。

套用自訂功能區

現在自訂功能區 XML 已儲存在資料表中,請執行下列其中一項動作,視您是要將功能區套用至整個資料庫或特定表單或報表而定。

  • 將自訂功能區套用至整個資料庫 

    1. 按一下 [檔案>選項]。 
    2. 按一下 [目前資料庫],然後在 [功能 區和工具列選項] 下,選取 [ 功能區名稱 ] 清單,然後按一下您想要的功能區,在這個例子中是 [我的索引標籤]。
    3. 按一下 [確定]
  • 將自訂功能區套用至特定表單或報表 

    1. 在 [瀏覽窗格] 中,以滑鼠右鍵按一下您要套用自訂功能區的表單或報表,然後按一下捷徑功能表上的 [設計檢視 ]。
    2. 如果沒有顯示屬性表,請按 F4 以顯示屬性表。
    3. 屬性工作表頂端的 [選取類型] 底下,確定已在清單中選取 [ 表單 ] 或 [報表) (物件類型。
    4. 在屬性工作表的 [ 其他 ] 索引標籤上,按一下 [ 功能區名稱 ] 清單,然後按一下您要在開啟表單或報表時顯示的功能區, (在此案例中為 [我的索引標籤 ]) 。
    5. 快速存取工具列上,按一下 [儲存],或按 CTRL+S。
    6. 關閉表單或報表,然後在 [瀏覽窗格] 中按兩下以重新開啟。
      隨即顯示您選取的功能區。

確認自訂功能區運作正常之後,您可以執行下列操作,再次隱藏系統資料表:

  1. 以滑鼠右鍵按一下 [瀏覽窗格] 頂端的 [瀏覽列],然後按一下捷徑功能表上的 [ 瀏覽選項 ]。
  2. 在 [瀏覽選項] 對話方塊的 [顯示選項] 底下,清除 [顯示系統物件] 核取方塊,然後按一下 [確定]。

頁面頂端

還原預設功能區

若要停止使用自訂功能區並還原預設功能區,請視整個應用程式或特定表單或報表使用自訂功能區,使用下列其中一個程序。

還原預設的應用程式層級功能區

  1. 按一下 [檔案>選項]。 
  2. 按一下 [目前資料庫],然後在 [功能 區和工具列選項] 下,刪除 [ 功能區名稱] 方塊的內容。
  3. 關閉資料庫後再重新開啟。

Access 會顯示其預設的功能區索引標籤。 除非您將功能區 XML 刪除,否則功能區 XML 會保留在 USysRibbons 資料表中,因此如果您想要恢復自訂功能區,您可以將 [ 功能區名稱 ] 選項設回先前所包含的值。

還原表單或報表的預設功能區

  1. 在 [設計檢視] 中開啟表單或報表。
  2. 如果沒有顯示屬性表,請按 F4 以顯示屬性表。
  3. 屬性工作表頂端的 [選取類型] 底下,確定已在清單中選取 [ 表單 ] 或 [報表) (物件類型。
  4. 在屬性工作表的 [ 其他 ] 索引標籤上,刪除 [ 功能區名稱 ] 屬性方塊的內容。
  5. 儲存、關閉,然後重新開啟表單或報表。

除非您將功能區 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 值,請使用下列程序:

  1. 按一下 [檔案>選項]。 
  2. 按一下 [自訂功能區 ] 或 [快速存取工具列]。 
  3. 將指標移到您想要資訊的項目上。 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>

頁面頂端