您可以使用 Access 巨集來建立當您以滑鼠右鍵按一下表單、報表或個別控制項時顯示的自訂快顯功能表。 您也可以建立自訂功能表,以顯示 [功能區] 上的特定表單或報表。
若要使用巨集建立功能表,請執行三個主要步驟:
- 使用包含功能表命令的子巨集建立巨集物件。
- 建立另一個可自行建立功能表的巨集物件。
- 將功能表附加至控制項、表單、報表或整個資料庫。
下列各節將詳細引導您完成這些步驟。
秘訣
如果你想學習如何在 Access 中使用 Visual Basic for Applications (VBA) 程式碼建立自訂快捷選單,請參閱文章「 為表單、表單控制或報告建立快捷選單」。
步驟 1: 使用包含功能表命令的子巨集建立巨集物件
在此步驟中,您使用子巨集建立巨集物件,每個子巨集都會是快顯功能表上的個別命令。
什麼是子巨集?
您可以在巨集物件內使用子巨集來定義一組巨集指令。 巨集物件中的子巨集可以從各種控制項和物件事件個別叫用。 巨集物件中的個別子巨集各自有唯一的名稱,而且可以包含一或多個巨集指令。
在 [建立] 索引標籤上,按一下 [巨集與程式碼] 群組中的 [巨集]。
針對您想要在自訂快顯功能表上使用的每個命令:
將 子巨集巨集陳述式 新增至巨集設計視窗,並命名您要在快顯功能表上顯示的子巨集 (例如「列印」或「重新整理」)。
秘訣
若要建立便捷鍵,以便使用鍵盤選取命令,請在命令名稱中欲作為便捷鍵的字母前加上 & 符號 (例如,"&Refresh")。 系統會在功能表上對這個字母加上底線。
在子巨集中,選取當您按一下快顯功能表上的命令時要執行的第一個巨集指令。
如果您選取此命令時想要執行更多巨集指令,請將它們新增為相同子巨集中的個別巨集指令。
儲存巨集物件並加以命名,例如 mcrShortcutMenuCommands。
下圖顯示自訂功能表或快顯功能表有三個子巨集的範例巨集物件。
步驟 2: 建立可建立功能表的第二個巨集物件
此步驟看似冗餘,但若要從您在步驟 1 中建立的巨集物件建立快顯功能表,您必須建立包含 AddMenu 巨集指令 的第二個巨集物件。 此巨集指令有時稱為「功能表巨集」。
- 在 [建立] 索引標籤上,按一下 [巨集與程式碼] 群組中的 [巨集]。
- 在巨集設計視窗的 [新增新巨集指令] 下拉式方塊中,選取 [AddMenu]。
- 在 AddMenu 巨集指令的 [功能表名稱] 引數方塊中,輸入功能表名稱 (例如「表單命令」)。 您不需要這個引數,但建議您在步驟 3 中將功能表新增至 [功能區] 索引標籤 (例如表單或報表的 [增益集] 索引標籤)。 如果在步驟 3 中將功能表新增為快顯功能表,系統便會忽略 [功能表名稱] 引數。
- 在 [功能表巨集名稱] 引數方塊中,輸入您在步驟 1 中建立的巨集物件名稱。
- 儲存並命名這第二個巨集物件,例如 mcrAddShortcutMenu。
下圖顯示可建立我們於步驟 1 中設計的功能表的範例功能表巨集物件。
步驟 3: 將功能表附加至控制項、表單、報表或資料庫
根據您要顯示功能表的位置,請使用下列一或多個程序。
將功能表新增至表單或報表的 [增益集] 索引標籤
如果您希望功能表顯示在特定表單或報表的 [增益集] 索引標籤上,請使用此程序。
- 在 [瀏覽窗格] 中,以滑鼠右鍵按一下您要顯示功能表的表單或報表位置,然後按一下 [設計檢視]。
- 在 [設計] 索引標籤的 [工具] 群組中,按一下 [屬性表]。
- 從 [屬性工作表] 工作窗格頂端的清單中選取 [表單] 或 [報表],以選取整個物件。
- 在 [屬性功能表] 的 [其他] 索引標籤的 [功能表列] 屬性方塊中,輸入您在步驟 2 中建立的巨集物件名稱 (在此範例中為 “mcrAddShortcutMenu”)。
- 儲存表單或報表變更。
下次當您開啟表單或報表時,[增益集] 索引標籤便會出現在 [功能區] 中。 按一下索引標籤以查看功能表,如下圖所示:
如需 [功能區] 自訂技術的詳細資訊,例如新增自訂索引標籤或隱藏預設索引標籤,請參閱 在 Access 中建立自訂功能區 一文。
將功能表新增為表單、報表或控制項的快顯功能表
如果您希望當您在特定表單、報表或控制項上以滑鼠右鍵按一下時會顯示功能表,請使用此程序。
- 在 [瀏覽窗格] 中,以滑鼠右鍵按一下您要顯示快顯功能表的表單或報表位置,然後按一下 [設計檢視]。
- 在 [設計] 索引標籤的 [工具] 群組中,按一下 [屬性表]。
- 選取您要附加快顯功能表的控制項或物件。
若要選取整個物件,請從 [屬性工作表] 工作窗格頂端的清單中選取 [表單] 或 [報表]。 - 在 [屬性功能表] 的 [其他] 索引標籤的 [快顯功能表列] 屬性方塊中,輸入您在步驟 2 中建立的巨集物件名稱 (在此範例中為“mcrAddShortcutMenu”)。
- 確定 [快顯功能表] 屬性已設為 [是]。
- 儲存表單或報表變更。
下次當您開啟表單或報表,然後以滑鼠右鍵按一下表單、報表或控制項時,您會看到含有相關聯命令的快顯功能表,如下圖所示:
將功能表新增為全域快顯功能表
此程序會取代目前資料庫中所有的預設快顯功能表。 您附加至特定表單、報表或控制項的自訂快顯功能表不會受到影響。
- 點擊 檔案>選項。
- 按一下 [Access 選項] 對話方塊中的 [目前資料庫]。
- 在 [功能區及工具列選項] 底下的 [快顯功能表列] 方塊中,輸入您在步驟 2 建立的巨集名稱 (在此範例中為 “mcrAddShortcutMenu”)。
- 按一下 [確定] 以在 [Access 選項] 對話方塊中儲存變更。
- 請關閉並重新開啟資料庫,以使變更生效。
自訂快顯功能表會取代附加物件的預設快顯功能表。 如果您想保留某些 Access 指令以在這些功能表中使用,請使用 RunCommand 巨集指令,以將這些命令加入您希望其內含的功能表的巨集物件中。
附加至控制項的自訂快顯功能表會取代資料庫中所定義的任何其他自訂快顯功能表。 附加至表單或報表的自訂快顯功能表會取代自訂全域快顯功能表。
當您為表單或報表或資料庫指定功能表巨集時,Access 會在表單、報表或資料庫開啟時執行此功能表巨集。 如果您在表單、報表或資料庫開啟的狀態下變更了功能表巨集物件,或定義該功能表命令的巨集物件,則必須關閉並重新開啟該表單、報表或資料庫,才能看到變更生效。
若要在命令的快顯功能表清單上建立子功能表,請依照步驟 1,建立只包含子功能表命令的個別巨集物件,如下圖所示:
然後,再次遵循步驟 1,定義較高層級功能表物件的命令。 使用 AddMenu 巨集指令,將子功能表新增為較高層級巨集物件中的項目。 下圖顯示包含子功能表之功能表的巨集物件。 此範例巨集物件中的第三個子巨集會建立 [匯出至...] 子功能表 (mcrShortcutSubMenuCommands)。
下圖顯示了包含子功能表的最終完成快顯功能表:
您可以透過在各層功能表的巨集物件中使用 AddMenu 巨集指令,來建立多層次的子功能表。 請務必為每個 AddMenu 巨集指令提供 [功能表名稱] 引數的值,否則子功能表會在較高層級功能表中顯示為空白行。
只有頂層功能表巨集物件才支援使用 If/Then/Else 區塊的巨集運算式條件。 換句話說,您可以在功能表巨集物件中使用條件運算式來判斷是否顯示特定功能表或快顯功能表,但僅限於頂層功能表。 您無法使用條件運算式顯示或隱藏功能表上的命令或子功能表。 您也可以使用條件運算式來隱藏或顯示自訂快顯功能表或全域快顯功能表。
或者,您在步驟 2 中建立的功能表巨集可以是巨集物件的一部分。 例如,如果您有數個不同物件或控制項的快顯功能表,您可以建立包含所有必要功能表巨集的單一巨集物件。 請確定每個子巨集都有唯一名稱。 在步驟 3 中,使用下列標記法來參照巨集: MacroObjectName.SubmacroName。 例如,mcrAddShortcutMenus.AddMenu2。