建立使用者介面 (UI) 巨集

在 Microsoft Access 中,附加至使用者介面的宏 (UI) 命令按鈕、文字方塊、表單和報表等物件稱為 UI 宏。 這會將它們與附加至資料表的資料宏區別。 您可以使用 (UI) 宏來自動化一系列動作,例如開啟另一個物件、應用程式篩選、啟動匯出作業,以及許多其他工作。 本文將向您介紹新重新設計的宏建立器,並說明建立 UI 宏時所涉及的基本工作。

附註: 本文不適用於 Access Web App。

本文內容

概觀

宏可以包含在宏物件中 (稱為獨立宏) 宏,也可以內嵌到表單、報表或控制項的事件屬性中。 內嵌宏會成為嵌入宏的物件或控制項的一部分。 宏物件顯示在功能窗格的 宏下;內嵌宏則沒有。

每個宏是由一或多個宏動作所決定。 根據您處理的操作內容,部分宏動作可能無法使用。

頁面頂端

巨集建立器

以下是宏建立器一些主要功能重點。

  • 動作目錄    宏動作是按照類型和可搜尋來組織。

  • IntelliSense    輸入運算式時,IntelliSense 會建議可能的值,並讓您選取正確的值。

  • 鍵盤快速鍵    使用按鍵組合以更快速、更輕鬆地撰寫宏。

  • 程式流程    使用批註行和動作群組建立更可讀的宏。

  • 條件陳述式    支援巢式 If/Else/Else If,以允許更複雜的邏輯執行。

  • 宏重複使用    動作目錄會顯示您建立的其他宏,讓您將其複製到您處理中的宏。

  • 更輕鬆地共用    複製宏,然後將它貼上為 XML 到電子郵件、新聞群組文章、部落格或程式碼範例網站。

以下影片會逐步引導您流覽宏建立器的主要區域。

您的瀏覽器不支援視訊。

頁面頂端

建立獨立宏

此程式會建立獨立宏物件,該物件 會顯示在導航 窗格中的宏下。 當您想要在應用程式的許多位置重複使用宏時,獨立宏非常有用。 從其他宏呼叫宏,可避免在多個位置重複相同的程式碼。

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

    Access 會開啟宏建立器。

  2. 在快速存取工具列上,按一下 [ 儲存

  3. 在 [ 另存 新位值> 對話方塊中,輸入宏的名稱,然後按一下 [確定。

  4. 繼續進行新增宏 動作一節

頁面頂端

建立內嵌宏

此程式會建立內嵌在物件事件屬性中的宏。 這類宏不會出現在功能窗格中,但可以從事件來叫用,例如載入時或按一下時。

由於宏會成為表單或報表物件的一部分,因此建議內嵌宏以自動化特定表單或報表特有的工作。

  1. 在功能窗格中,以滑鼠右鍵按一下包含宏的表單或報表,然後按一下 [ 版面配置視圖

  2. 如果沒有顯示屬性表,請按 F4 以顯示屬性表。

  3. 按一下包含要內嵌宏之事件屬性的控制項或區段。 您也可以使用屬性工作表頂端的 (類型下拉式清單,選取控制項或節或整個表單或報表) 。

  4. 在 [屬性工作表工作窗格> 中,按一下 [事件窗格

  5. 按一下要觸發宏之事件的屬性方塊。 例如,針對命令按鈕,如果您想要在按一下按鈕時執行宏,請按一下 [ 按一下屬性方塊

  6. 如果屬性方塊包含 [內嵌宏]字樣,表示已為此事件建立宏。 您可以繼續此程式中的其餘步驟來編輯宏。

  7. 如果屬性方塊包含 [事件程序]字樣,這表示已針對此事件建立 Visual Basic for Applications (VBA) 程式。 在事件內嵌宏之前,您必須移除程式。 您可以刪除 [事件程序] 一詞來這麼做,但您應該先檢查事件程序,確定移除時不會中斷資料庫中所需的功能。 在某些情況下,您可以使用內嵌宏重新建立 VBA 程式的功能。

  8. 按一下 [ 建立 > 按鈕 按鈕影像

  9. 如果出現 [選擇建立 器對話方塊,請確定 已選取宏 建立器,然後按一下 [確定

    Access 會開啟宏建立器。 繼續進行下一節,將宏新增動作。

頁面頂端

新增宏的動作

巨集指令是一個個別的命令,每個命令都是根據宏的功能命名,例如FindRecordCloseDatabase。

步驟 1:流覽或搜尋宏動作

新增動作的第一個步驟是在新增動作下拉式清單或動作目錄找到該動作。

附註: 

  • 根據預設, 新增動作 下拉式清單和動作目錄只會顯示將在不受信任的資料庫中執行的動作。 若要查看所有動作:

    • 在 [ 設計> 鍵 的 [顯示 /隱藏群組 中,按一下 [顯示所有動作

  • 如果沒有顯示 [動作目錄》,請在 [設計 索引鍵的顯示 / 隱藏群組中, 按一下 [動作 目錄

若要尋找動作,請使用下列其中一種方法:

  • 按一下 [ 新增動作的 新增動作) 下拉式清單中的箭卷,然後向下捲動以尋找動作。 程式流程元素會先列出,然後再按字母順序列出宏動作。

  • 流覽動作目錄窗格中的動作。 動作會按類別分組。 展開每個類別以查看動作。 如果您選取某個動作,動作的簡短描述會出現在動作目錄的底部。

  • 在窗格頂端的搜尋方塊中輸入,以在動作目錄窗格中搜尋動作。 當您輸入時,動作清單會經過篩選,以顯示包含該文字的所有宏。 Access 會同時搜尋宏名稱及其描述,以尋找您輸入的文字。

步驟 2:新增宏的動作

找到想要的宏宏動作後,使用以下其中一種方法將其新增到宏:

  • 在新增 動作清單中選取 某個動作,或只是開始在方塊中輸入動作名稱。 Access 會新增顯示新增動作清單時的動作。

  • 將動作從宏目錄拖曳到宏窗格。 插入線會顯示當您放開滑鼠按鍵時,動作會插入的位置。

  • 按兩下 [動作目錄》 中的動作。

    • 如果在宏窗格中選取了動作,Access 會新增所選動作正下方的新動作。

    • 如果在宏窗格中選取了 Group、Else If、ElseSubmacro區塊,Access 會新增動作至該區塊。

    • 如果在宏窗格中未選取任何動作或區塊,Access 會將新宏動作新加到宏的結尾。

      附註: 

      • 如果您已經建立一或多個宏,這些宏會列在動作目錄的此 資料庫節點下

        • 將位於宏 (宏下的獨立宏拖曳) 宏窗格會建立執行您拖曳的宏的 RunMacro宏動作。 接著,您可以使用下拉式清單來呼叫子關係 ,如果有。

        • 如果您只想將獨立宏中的宏動作複製到目前的宏 (,而不是建立RunMacro動作) ,請在 [宏目錄》 中以滑鼠右鍵按一下該宏,然後按一下 [新增宏的複製本。

        • 將內嵌宏 (表單或報表物件下列出的宏拖曳) 宏窗格,即可將宏中的宏動作複製到目前的宏。

      • 您也可以將資料庫物件從功能窗格拖曳到宏窗格,以建立動作。 如果您將資料表、查詢、表單、報表或模組拖曳到宏窗格,Access 會新增開啟資料表、查詢、表單或報表的動作。 如果您將另一個宏拖曳到宏窗格,Access 會新增執行宏的動作。

步驟 3:填寫引數

大部分的宏動作至少需要一個引數。 您可以選取動作,然後將指標移到引數上,以查看每個引數的描述。 對於許多引數,您可以從下拉式清單中選取值。 如果引數需要您輸入運算式,IntelliSense 會建議輸入時可能的值,來説明您輸入運算式,如下圖所示:

使用 IntelliSense 輸入運算式

當您看到想要使用的值時,請按兩下值,或使用方向鍵來強調值,然後按 TAB 或 ENTER 鍵,將其新加到運算式中。

有關建立運算式的資訊,請參閱運算式 簡介一文

關於在 Web 資料庫中使用 IntelliSense 屬性

當您在 Web 相容表單上建立內嵌 UI 宏時,IntelliSense 可讓您新增任何表單內容至運算式。 不過,在 Web 資料庫中,只有表單內容的子集可以使用 UI 宏存取。 例如,針對名為 Form1 的表單上名為 Control1 的控制項,IntelliSense 將讓您新增 [Forms]![Form1]![Control1]。[ControlSource] 至 UI 宏中的運算式。 不過,如果您接著將資料庫發佈至 Access Services,則包含該運算式的宏在伺服器上執行時,會產生錯誤。

下表顯示您可以在 Web 資料庫中的 UI 宏中使用的屬性:

您可以使用的屬性

表單

Caption, Dirty, AllowAdditions, AllowDeletions, AllowEdits

Tab 控制項

Visible

標籤

標題、可見、前色彩、背景色彩

附件

可見,已啟用

命令按鈕

標題、可見、啟用、前色彩

Tex tBox

已啟用、可見、已鎖定、Fore Color、Back Color、值

核取方塊

已啟用、可見、已鎖定、值

影像

可見、背景色彩

下拉式方塊

已啟用、可見、已鎖定、值

清單方塊

已啟用、可見、已鎖定、值

網頁瀏覽器

Visible

子表單

已啟用、可見已鎖定

流覽控制項

已啟用、可見

移動動作

宏會以循序執行宏,從頂端到底部。 若要在宏中向上或向下移動動作,請使用下列其中一種方法:

  • 將動作向上或向下拖曳到您想要的地方。

  • 選取動作,然後按 CTRL + 向上鍵或 CTRL + 向下鍵。

  • 選取動作,然後按一下宏窗格右邊的向上移動或向下鍵。

刪除動作

若要刪除宏動作:

  • 選取動作,然後按 DELETE 鍵。 或者,您也可以按一下宏窗格 ( [刪除) X 行按鈕。

    附註: 

    • 如果您刪除動作區塊 ,例如 If 區塊或 群組 區塊,該區塊中所有的動作也一併刪除。

    • 當您以滑鼠右鍵按一下宏指令時,快捷方式功能表上也會出現 [上移、下移及刪除命令。

頁面頂端

使用 If、Else If 和 Else 控制程式流程

若要只在特定條件為 True 時執行巨集指令,請使用 If 區塊。 這會取代 較舊版本的 Access 中使用的條件資料行。 您可以使用 Else IfElse區塊來擴充 If 區塊,與其他連續程式設計語言類似,例如 VBA。

下圖顯示簡單的 If 區塊,包括 Else IfElse 區塊:

包含 If/Else If/Else 陳述式的巨集。

如果 ExpirationDate 欄位小於目前日期,則執行 If 區塊。

如果 ExpirationDate 欄位等於目前日期,則執行 Else If 區塊。

如果 先前的區塊 沒有執行,系統即會執行 Else 區塊。

If 區塊 在此結束。

新增 If 區塊至宏

  1. 新增動作下拉式清單中選取 If,或將其從動作目錄窗格拖曳到宏窗格。

  2. 在 If 區塊頂端的方塊中,輸入運算式,以決定區塊的執行時間。 運算式必須是布林值 (,也就是說,運算式會評估為是或否) 。

  3. 從出現在封鎖內的新增動作下拉式清單中選取動作,或將動作從動作目錄窗格拖曳到 If 區塊,以將動作新加到If區塊。

新增 Else 或 Else If 區塊至 If 區塊

  1. 選取 [If區塊,然後在區塊的右下角,按一下 [新增 Else或 Add Else If。

  2. 如果您要新增 Else If 區塊,請輸入運算式,決定該區塊的執行時間。 運算式必須是布林值 (,也就是說,運算式會評估為 True 或 False) 。

  3. 從區塊內出現的新增動作下拉式清單中選取動作,或將動作從動作目錄窗格拖曳到該區塊,即可將動作新增到 Else If 或Else區塊。

    附註: 

    • 當您以滑鼠右鍵按一下宏動作時,快捷方式功能表上會顯示新增 If、ElseIfElse 區塊的命令。

    • 如果 區塊可以巢巢式內層深達 10 層。

頁面頂端

建立子天地

每個宏可以包含多個子宏。 子宏是設計來根據 RunMacroOnError 宏動作的名稱來命名。

您新增 Submacro 區塊至宏的方式與宏動作相同,如新增宏宏動作一 節所述。 新增子宏區塊後,您可以將宏動作拖曳到該區塊中,或從區塊內出現的新增動作清單中選取動作。

附註: 

  • 您也可以選取 一或多個 動作、以滑鼠右鍵按一下這些動作,然後選取 Make Submacro Block,以建立子Macro 區塊

  • 子宏一定是宏的最後一個區塊;您無法新增任何動作 (子圖下方) 子圖。 如果您執行只包含子宏的宏,但不特別命名您想要的子宏,則只會執行第一個子宏。

  • 若要呼叫子宏 (例如,在事件屬性中,或使用RunMacro宏宏或OnError宏宏) ,請使用下列語法

    :macroname.submacroname

頁面頂端

將相關動作分組在一起

您可以將動作分組並指派有意義的名稱給群組,以改善宏的可讀性。 例如,您可以群組動作,將開啟表單並篩選成名為「開啟及篩選表單」的群組。 這可更輕鬆地查看哪些動作彼此相關。 群組 區塊 不會影響動作的執行方式,而且無法個別叫用或執行群組。 其主要用途是標記一組動作,説明您在讀取宏時瞭解宏。 此外,在編輯大型宏時,您可以將每個群組區塊向下翻到一行,以減少您必須的卷軸量。

如果您想要分組的動作已經在宏中,請使用此程式將它們新加入 群組 區塊:

  1. 選取要分組的動作。

  2. 以滑鼠右鍵按一下選取的動作,然後按一下 [ 製作群組區塊

  3. 在群組區塊頂端的方塊中,輸入群組的名稱。

如果動作尚未出現:

  1. 將群組 區塊 從動作目錄拖曳到宏窗格。

  2. 在群組區塊頂端的方塊中,輸入群組的名稱。

  3. 將宏動作從宏目錄拖曳到群組區塊,或從區塊內出現的新增動作清單中選取動作。

群組 區塊可以包含其他 群組 區塊,而且最多可以巢式內巢式建立 9 層深。

頁面頂端

展開及展開宏動作或區塊

當您建立新宏時,宏建立器會顯示宏動作,並顯示所有引數。 視宏大小不同,您可能會想要在編輯宏時 (或宏) 或所有宏動作。 這可更輕鬆地取得宏結構的整體視圖。 您可以根據需要展開部分或所有動作來編輯動作。

展開或展開單一宏宏動作或區塊

  • 按一下加 (+) 或減號 (-) 宏或區塊名稱左側的符號。 或者,按向上鍵和向下鍵以選取動作或區塊,然後按向左鍵或向右鍵來展開或展開動作。

展開或展開所有宏 (但不要將宏)

  • 在 [ 設計> 鍵 的 [展開 / 展開的群組中,按一下 [展開動作展開動作

展開或展開所有宏動作和區塊

  • 在 [ 設計> 鍵 的 [展開 / 展開群組中,按一下 [全部展開全部展開

提示:  您可以將指標移到動作上,在已轉換的動作中「預覽」。 Access 會在工具提示中顯示動作引數。

頁面頂端

複製並貼上宏動作

如果您需要重複已新加入宏的動作,您可以複製並貼上現有的巨集指令,就像在文字處理器中複製及貼上文欄位落一樣。 當您貼上動作時,動作會插入目前選取的動作正下方。 如果已選取區塊,動作會以在區塊內進行。

提示:  若要快速複製選取的動作,請按住 CTRL 鍵, (將) 拖曳到您想要複製宏的位置。

與其他人共用宏

當您將宏動作複製到剪貼卡時,宏動作可以貼上為可擴展標記語言 (XML) 任何接受文字的應用程式。 這可讓您透過電子郵件訊息傳送宏給同事,或在論壇、部落格或其他網站上張貼宏。 然後收件者可以複製 XML 並貼到其 Access 2010 宏建立器中。 宏會重新撰寫成您撰寫的宏。

執行巨集

您可以使用下列任一方法執行宏:

  • 按兩下功能窗格中的宏。

  • 使用 RunMacroOnError 宏宏動作呼叫宏。

  • 在物件的 Event 屬性中輸入宏名稱。 當該事件觸發時,宏就會執行。

頁面頂端

對宏進行錯錯

如果您在執行宏時發生問題,您可以使用幾個工具來取得問題的來源。

在宏中新增錯誤處理動作

我們建議您在撰寫宏時新增錯誤處理動作至每個宏,並永久留在宏中。 當您使用此方法時,Access 會在發生錯誤時顯示描述。 錯誤描述可協助瞭解錯誤,以便更快速地修正問題。

使用下列程式在宏中新增錯誤處理子宏:

  1. 在設計檢視中開啟宏。

  2. 在宏底部,從新增動作下拉式清單中選取Submacro。

  3. Submacro字右方方塊中,輸入子macro 的名稱,例如ErrorHandler。

  4. 從子宏區塊內出現的新增動作下拉式清單中,選取MessageBox宏動作。

  5. 在 [ 郵件] 方塊中,輸入下列文字 :=[MacroError].[描述]

  6. 在宏底部,從新增動作下拉式清單中選取OnError。

  7. Go to 自 變數設為 宏名稱

  8. 宏名稱方塊中,輸入錯誤處理子宏的名稱 (範例中的 ErrorHandler) 。

  9. OnError 宏動作拖曳到宏的頂端。

下圖顯示具有OnError宏動作的宏,以及名為ErrorHandler 的 Submacro。

含有錯誤處理子巨集的巨集。

OnError宏宏動作會置於宏的頂端,如果發生錯誤,會呼叫ErrorHandler子宏。

ErrorHandler副程式只有在OnError動作要求時才能執行,並顯示描述錯誤的訊息方塊。

使用單一步驟命令

單一步驟是一種宏的查詢模式,您可以一次執行一個巨集指令。 執行每個動作之後,會出現一個對話方塊,顯示動作相關資訊,以及結果中發生的任何錯誤碼。 不過,由於 [宏單一步驟」 對話方塊中沒有錯誤描述,建議您使用上一節所述的錯誤處理子宏方法。

若要啟動單一步驟模式:

  1. 在設計檢視中開啟宏。

  2. 在 [設計>鍵的 [工具群組中,按一下單一步驟

  3. 儲存並關閉巨集。

下次執行宏時,宏 單一步驟 對話方塊會出現。 對話方塊會顯示每個動作的以下資訊:

  • 宏名稱

  • If 區塊 (的條件)

  • 動作名稱

  • 引數

  • 錯誤數位 (0 代表沒有發生錯誤)

當您逐步執行動作時,請按一下對話方塊中的三個按鈕之一:

  • 若要查看宏中下一個動作的資訊,請按Step。

  • 若要停止目前所運作的任何宏,請按一下 [停止所有宏。 下一次執行宏時,單步驟模式仍然有效。

  • 若要離開單一步驟模式並繼續執行宏,請按一下 [ 繼續

    附註: 

    • 如果您在宏 的最後 一個動作之後按 Step,下一次執行宏時,單步驟模式仍然有效。

    • 若要在宏執行時進入單步驟模式,請按 CTRL+BREAK。

    • 若要在宏中的特定點進入單一步驟模式,請在該點新增 SingleStep 宏動作。

    • Web 資料庫中無法使用單步驟模式。

頁面頂端

將宏轉換成 VBA 程式碼

宏提供 Visual Basic for Applications 中可用命令的子集, (VBA) 語言。 如果您決定需要比宏提供更多的功能,您可以輕鬆將獨立宏物件轉換為 VBA 程式碼,然後使用 VBA 提供的擴充功能集。 不過請記住,VBA 程式碼不會在瀏覽器中執行;您新加入 Web 資料庫的任何 VBA 程式碼只會在 Access 中開啟資料庫時執行。

附註:  您無法將內嵌宏轉換為 VBA 程式碼。

若要將宏轉換為 VBA 程式碼:

  1. 在功能窗格中,以滑鼠右鍵按一下宏物件,然後按一下 [設計檢視。

  2. 在 [設計>鍵的 [工具」群組中,按一下[將宏轉換為 Visual Basic。

  3. 在 [ 轉換宏> 對話方塊中,指定是否要在 VBA 模組中新增錯誤處理常式代碼和批註,然後按一下 [轉換

Access 會確認宏已轉換,並開啟 Visual Basic 編輯器。 按兩下 Project 窗格中的 [轉換後的宏,以查看及編輯模組。

頁面頂端

需要更多協助?

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

×