Applies ToMicrosoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

您可以使用 Access 宏來建立當您以滑鼠右鍵按兩下表、報表或個別控制項時顯示的自訂快捷方式選單。 您也可以建立自定義功能表,以顯示在功能區上的特定表單或報表。

若要使用宏建立功能表,請執行三個主要步驟:

  1. Create 包含功能表命令之子宏物件。

  2. Create 建立功能表本身的另一個宏物件。

  3. 將功能表附加至控件、表單、報表或整個資料庫。

下列各節將逐步引導您完成這些步驟。

提示: 如果您想要瞭解如何在Access中使用Visual Basic for Applications (VBA) 程式代碼建立自定義快捷方式功能表,請參閱 Create 表單控件或報表的快捷方式功能表一文。

步驟 1:使用包含功能表命令的子宏物件 Create

在此步驟中,您使用子宏建立宏物件,每個子宏都會是快捷方式功能表上的個別命令。

什麼是子宏?

您可以在宏物件內使用子宏來定義一組宏指令。 宏物件中的子宏可以與各種控件和物件事件分開叫用。 宏物件中的個別子宏各自有唯一的名稱,而且可以包含一或多個宏指令。

  1. 在 [建立] 索引標籤上,按一下 [巨集與程式碼] 群組中的 [巨集]。

  2. 針對您要在自訂快捷方式選單上使用的每個命令:

    1. Submacro 宏語句 新增至宏設計視窗,並命名您要在快捷方式功能表上顯示的子宏 (例如「列印」或「重新整理」) 。

      提示: 若要建立訪問鍵,讓您可以使用鍵盤選擇命令,請在您要成為命令名稱之訪問鍵的字母前面輸入一個音效和 (&) (,例如「&重新整理」) 。 此字母會在功能表上加上底線。

    2. 在子宏中,選取當您按下快捷方式功能表上的命令時要執行的第一個動作。

    3. 如果您選取此命令時想要執行更多動作,請將它們新增為相同子宏中的個別宏指令。

  3. 儲存宏物件並命名,例如 mcrShortcutMenuCommands

    下圖顯示自定義功能表或快捷方式功能表有三個子宏的範例宏物件。

    含有三個子宏語句的 Access 宏設計視窗螢幕快照。

步驟 2:Create 建立功能表的第二個宏物件

此步驟看似冗餘,但若要從您在步驟 1 中建立的宏物件建立快捷方式功能表,您必須建立第二個包含 AddMenu 宏指令的宏物件。 此宏指令有時稱為「功能表宏」。

  1. 在 [建立] 索引標籤上,按一下 [巨集與程式碼] 群組中的 [巨集]。

  2. 在宏設計視窗的 [ 新增動作 ] 下拉式方塊中,選取 [AddMenu]

  3. AddMenu 宏指令的 [功能表名稱] 自變數方塊中,輸入功能表名稱 (例如“Form Commands”) 。 您不需要這個自變數,但建議您在步驟 3 中將功能表新增至功能區索引卷標 (例如表單或報表) 的 [載入 宏] 索引卷標。 如果在步驟 3 中將功能表新增為快捷方式功能表, 功能表名稱自變數 會被忽略。

  4. 在 [ 功能表宏名稱 ] 自變數方塊中,輸入您在步驟 1 中建立的宏物件名稱。

  5. 儲存並命名這個第二個宏物件,例如 mcrAddShortcutMenu

    下圖顯示建立我們於步驟 1 中設計的功能表的範例功能表宏物件。

    含有 AddMenu 宏指令之 Access 宏對象的螢幕快照。

步驟 3:將功能表附加至控件、表單、報表或資料庫

根據您要顯示功能表的位置而定,請使用下列一或多個程式。

將功能表新增至表單或報表的 [Add-Ins] 索引標籤

如果您希望功能表顯示在特定表單或報表的 [載入宏 ] 索引標籤上,請使用此程式。

  1. 在 [導航窗格] 中,以滑鼠右鍵按下您要顯示功能表的表單或報表,然後按兩下 [ 設計檢視]

  2. 在 [設計] 索引標籤的 [工具] 群組中,按一下 [屬性表]。

  3. 從 [屬性表] 工作窗格頂端的清單 中選取 [表體] 或 [ 表],以選取整個物件。

  4. 在 [屬性表] 的 [ 其他 ] 索引標籤的 [ 功能表欄 ] 屬性方塊中,輸入您在步驟 2 中建立的宏物件名稱, (在此範例中,“mcrAddShortcutMenu”) 。

  5. 儲存表單或報表變更。

    下次您開啟表單或報表時, [載入宏] 索引 卷標會出現在功能區中。 點擊索引標籤以查看選單,如下圖所示:

    Access 中 [載入宏] 功能區的螢幕快照

    如需功能區自定義技術的詳細資訊,例如新增自定義索引卷標或隱藏預設索引卷標,請參閱在 Access 中 Create 自定義功能區一文。

將功能表新增為表單、報表或控制件的快捷方式選單

如果您想要在特定表單、報表或控制件上按下滑鼠右鍵時顯示選單,請使用此程式。

  1. 在 [導航窗格] 中,以滑鼠右鍵按下您要顯示快捷方式功能表的表單的表單或報表,然後按兩下 [ 設計檢視]

  2. 在 [設計] 索引標籤的 [工具] 群組中,按一下 [屬性表]。

  3. 選取您要附加快捷方式功能表的控制件或物件。

    若要選取整個物件,請從 [屬性表] 工作窗格頂端的清單 中選取 [表單] 或 [ 表]。

  4. 在 [屬性表的另一 ] 索引標籤的 [快捷方式功能表欄 ] 屬性方塊中,輸入您在步驟 2 中建立的宏物件名稱 (在此範例中,“mcrAddShortcutMenu”) 。

  5. 確定 [快捷方式功能表] 屬性已設為 [ 是]。

  6. 儲存表單或報表變更。

    下次開啟表單或報表,然後以滑鼠右鍵單擊表單、報表或控件時,您會看到含有相關聯命令的快捷方式功能表,如下圖所示:

    Access 窗體上快捷方式功能表的螢幕快照

將功能表新增為全域快捷方式功能表

此程式會取代目前資料庫中所有的預設快捷方式功能表。 您附加至特定表單、報表或控制件的自訂快捷方式選單不會受到影響。

  1. 按一下 [檔案] > [選項]。

  2. 按一下 [Access 選項] 對話方塊中的 [目前資料庫]。

  3. 在 [ 功能區及工具欄選項] 底下的 [快捷方式功能表欄 ] 方塊中,輸入您在步驟 2 建立的宏名稱, (在此範例中輸入“mcrAddShortcutMenu”) 。

  4. 按兩下 [確定 ] 以在 [ 存取選項 ] 對話框中儲存變更。

  5. 關閉然後重新開啟資料庫,變更才會生效。

自定義快捷方式功能表會取代附加物件的預設快捷方式功能表。 如果您想要保留要在這些功能表上使用的某些 Access 命令,請使用 RunCommand 宏指令,將命令放入您要的功能表的宏物件中。

附加至控件的自定義快捷方式功能表會取代資料庫中定義的任何其他自定義快捷方式功能表。 附加至表單或報表的自定義快捷方式功能表會取代自定義全域快捷方式選單。

當您為表單或報表或資料庫指定功能表宏時,Access 會在表單、報表或資料庫開啟時執行此功能表宏。 如果您在表單、報表或資料庫開啟時,對功能表宏物件或定義其命令的宏物件進行變更,您必須關閉表單、報表或資料庫,然後重新開啟以查看變更。

若要在命令的快捷方式功能表清單上建立子功能表,請依照步驟 1 建立只包含子功能表命令的個別宏物件,如下圖所示:

Access 中含有兩個子宏的宏螢幕快照

然後,再次遵循步驟 1,定義較高層級功能表物件的命令。 使用 AddMenu 宏指令,將子功能表新增為較高層級宏物件中的專案。 下圖顯示包含子功能表之功能表的宏物件。 此範例宏物件中的第三個子宏會建立 export to... 子功能表 (mcrShortcutSubMenuCommands) 。

含有四個子宏之 Access 宏的螢幕快照

下圖顯示含有子選單的已完成快捷方式選單:

含有子功能表的快捷方式選單的螢幕快照

您可以在功能表層級的宏物件中使用 AddMenu 宏指令,建立多個子功能表層級。 請務必為每個 AddMenu 動作提供 [功能表名稱] 自變數的值,否則子功能表會在較高層級功能表中顯示為空白行。

只有頂層功能表宏物件才支援使用 If/Then/Else 區塊的宏表達式條件。 換句話說,您可以在功能表宏物件中使用條件表達式來判斷是否會顯示特定功能表或快捷方式功能表,但僅限於最上層的功能表。 您無法使用條件表示式顯示或隱藏選單上的命令或子選單。 您也可以使用條件表示式來隱藏或顯示自訂快捷方式選單或全域快捷方式選單。

或者,您在步驟 2 中建立的功能表宏可以是宏物件的一部分。 例如,如果您有多個不同物件或控件的快捷方式功能表,您可以建立包含所有必要功能表宏的單一宏物件。 請確定每個子宏都有唯一名稱。 在步驟 3 中,使用下列表示法來參照宏: MacroObjectName.SubmacroName。 例如, mcrAddShortcutMenus.AddMenu2

頁面頂端

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。