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

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

附註: 本文不適用於 Access web app。

本文內容

概觀

巨集建立器

建立獨立的宏

建立內嵌宏

新增動作至宏

使用 If、Else (如果有的話)控制程式流程

建立 submacros

將相關的動作組成群組

展開和折迭宏動作或區塊

複製並貼上宏動作

與其他人共用宏

執行巨集

調試宏

將宏轉換為 VBA 程式碼

概觀

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

每個宏都是由一或多個宏動作所組成。 視您使用的內容而定,某些宏動作可能無法使用。

頁面頂端

巨集建立器

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

  • [動作目錄]    宏動作是依類型和可搜尋的方式來組織。

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

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

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

  • 條件陳述式    允許更複雜的邏輯執行,包括支援嵌套 If/Else if。

  • 宏重複使用    [動作目錄] 會顯示您已建立的其他宏,讓您將它們複製到您正在使用的宏。

  • 輕鬆共用    複製宏,然後將其以 XML 形式貼到電子郵件、新聞群組文章、博客或程式碼範例網站中。

以下影片會逐步引導您完成宏產生器的主要區域。

您的瀏覽器不支援視訊。 請安裝 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

頁面頂端

建立獨立的宏

這個程式會建立一個獨立的宏物件,該物件會出現在 [功能窗格] 中的 [] 底下。 當您想要在應用程式的許多位置重複使用宏時,可以使用獨立的宏。 您可以從其他宏呼叫宏,避免將相同的程式碼複製到多個位置。

  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 就會將新的動作新增至所選項目的正下方。

    • 如果在 [宏窗格] 中選取群組if、else 或Submacro組塊,Access就會將新的動作新增到該區塊。

    • 如果在 [宏窗格] 中沒有選取任何動作或封鎖,Access 會將新的動作新增至宏的結尾。

      附註: 

      • 如果您已經建立一個或多個宏,它們會列于 [動作目錄] 中的 [在此資料庫中] 節點底下。

        • 將獨立宏(在 [] 下方所列的宏)拖曳到 [宏窗格] 中,會建立一個可執行您所拖曳之宏的RunMacro動作。 然後,您可以使用下拉式清單來呼叫 submacros (如果有的話)。

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

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

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

步驟3:填入引數

大多數的宏動作至少需要一個引數。 您可以選取動作,然後將指標移到引數上方,即可查看每個引數的描述。 對於許多引數,您可以從下拉式清單中選取一個值。 如果引數需要您在運算式中輸入,IntelliSense 可協助您輸入運算式,方法如下圖所示:

使用 IntelliSense 輸入運算式

當您看到想要使用的值時,按兩下運算式將它新增到您的運算式,或使用方向鍵來醒目提示,然後按 TAB 或 ENTER 鍵。

如需建立運算式的詳細資訊,請參閱運算式簡介一文。

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

當您在與 web 相容的表單上建立內嵌 UI 宏時,IntelliSense 可讓您將任何 form 屬性新增到運算式中。 不過,在 web 資料庫中,只能使用 UI 宏來存取表單屬性的子集。 例如,在名為 Form1 的表單上,假設有一個名為 Control1 的控制項,IntelliSense 會讓您新增 [Forms]![Form1]![Control1].[ControlSource] 移至 UI 宏中的運算式。 不過,如果您接著將資料庫發佈到 Access 服務,則包含該運算式的宏在伺服器上執行時,就會產生錯誤。

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

您可以使用的屬性

表單

標題、已更新、允許編輯、[允許編輯]

索引標籤控制項

Visible

標籤

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

附件

可見、已啟用

命令按鈕

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

Tex tBox

已啟用、可見、鎖定、前景色、背景色、值

核取方塊

已啟用、可見、鎖定、值

影像

可見、背景色彩

下拉式方塊

已啟用、可見、鎖定、值

清單方塊

已啟用、可見、鎖定、值

網頁瀏覽器

Visible

已啟用、可見度已鎖定

導覽控制項

已啟用、可見

移動動作

動作會依順序從宏的上到下執行。 若要在宏中向上或向下移動動作,請使用下列其中一種方法:

  • 將動作向上或向下拖曳至您想要的位置。

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

  • 選取動作,然後按一下 [宏] 窗格右側的 [上移] 或 [下移]箭號。

刪除動作

若要刪除巨集指令:

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

    附註: 

    • 如果您刪除一區塊動作(例如If區塊或群組區塊),區塊中的所有動作也都會刪除。

    • 當您以滑鼠右鍵按一下宏動作時,就會出現快捷方式功能表上的 [上移]、[下移] 和 [刪除] 命令。

頁面頂端

使用 If、Else (如果有的話)控制程式流程

若要只在特定條件為 true 時才執行宏動作,您可以使用If區塊。 這會取代舊版 Access 所用的 [條件] 資料行。 您可以將if區塊延伸成Else ifELSE區塊,就像 VBA 中的其他順序程式設計語言一樣。

下圖顯示一個簡單的If區塊,包括Else ifelse封鎖:

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

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

如果 ExpirationDate 欄位等於目前日期,則Else if組塊會執行。

如果先前的區塊都沒有, Else區塊就會執行。

If區塊會在此結束。

在宏中新增 If 區塊

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

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

  3. 若要在If區塊中新增動作,請從出現在區塊內的 [新增動作] 下拉式清單中選取,或從 [動作目錄] 窗格拖曳到if區塊。

將 Else 或 Else (如果封鎖)新增至 If 區塊

  1. 選取 If[封鎖],然後在組塊右下角,按一下[新增其他] 或 [新增 else]。

  2. 如果您要新增Else If區塊,請輸入決定何時執行區塊的運算式。 運算式必須是 Boolean (也就是評估為 True 或 False 的那個)。

  3. Else IfElse的 [新增動作] 下拉式清單中選取該區塊,或從 [動作目錄] 窗格中將其拖曳到區塊,即可新增這些動作。

    附註: 

    • 當您以滑鼠右鍵按一下宏動作時,會顯示快捷方式功能表上的 [如果有的話,要新增if] 或[else]方塊。

    • 如果區塊最多可以嵌套10層。

頁面頂端

建立 submacros

每個宏都可以包含多個 submacros。 Submacro 的設計是由RunMacroOnError巨集指令中的名稱來呼叫。

您可以使用與巨集指令相同的方式,將Submacro組塊新增至宏,如在宏中新增動作一節所述。 在您新增Submacro組塊之後,您可以將巨集指令拖曳到其中,或從出現在區塊中的 [新增] 動作清單中選取 [動作]。

附註: 

  • 您也可以選取一或多個動作來建立Submacro組塊,以滑鼠右鍵按一下這些動作,然後選取 [製作 Submacro 組塊]。

  • Submacros 必須永遠是宏中的最後一個區塊;您無法在 submacro 下方新增任何動作(除了其他 submacros)。 如果您執行的宏只包含 submacros,而沒有明確命名您想要的 submacro,則只有第一個 submacro 會執行。

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

    macroname. submacroname

頁面頂端

將相關的動作組成群組

您可以將動作組成群組並指派有意義的名稱,以改善宏的可讀性。 例如,您可以將開啟及篩選表單的動作群組成名為「開啟與篩選表單」的群組。 這可讓您更容易查看哪些動作彼此關聯。 群組區塊不會影響執行動作的方式,而且不能單獨呼叫或執行群組。 其主要用途是將一組動作加上標籤,以協助您在讀取宏時瞭解它。 此外,在編輯大型宏時,您可以將每個群組區塊向下折迭到單一行,減少您必須執行的滾動量。

如果您想要群組的動作已經存在於宏中,請使用此程式將其新增至群組區塊:

  1. 選取您要組成群組的動作。

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

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

如果動作不存在:

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

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

  3. 將巨集指令從 [動作] 目錄拖曳到群組區塊,或從區塊中出現的 [新增動作] 清單中選取 [動作]。

群組區塊可以包含其他群組區塊,而且最多可嵌套9層級。

頁面頂端

展開和折迭宏動作或區塊

當您建立新的宏時,宏建立器會顯示宏動作,並顯示所有引數。 視宏的大小而定,您可能會想要在編輯宏時,折迭部分或所有宏動作(以及動作區塊)。 這可讓您更容易取得宏結構的整體視圖。 您可以視需要展開部分或所有動作來進行編輯。

展開或折迭單一巨集指令或封鎖

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

展開或折迭所有巨集指令(但不是區塊)

  • 按一下 [設計] 索引標籤上 [折迭/展開] 群組中的 [展開動作] 或 [折迭動作]。

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

  • 在 [設計] 索引標籤的 [折迭/展開] 群組中,按一下 [全部展開] 或 [全部折疊]。

提示:  您可以透過將滑鼠指標移到動作上方,以「速覽」在折迭動作中。 Access 會在工具提示中顯示動作引數。

頁面頂端

複製並貼上宏動作

如果您需要重複您已新增至宏中的動作,您可以複製並貼上現有的動作,就像在文字處理程式中的文欄位落中一樣。 當您貼上動作時,這些動作就會插入到目前選取的動作下方。 如果選取區塊,動作會貼到區塊內。

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

與其他人共用宏

當您將巨集指令複製到剪貼簿時,它們可以以可擴展標記語言(XML)的方式貼到任何接受文字的應用程式中。 這可讓您透過電子郵件傳送宏給同事,或將宏張貼在討論論壇、博客或其他網站上。 然後,收件者可以複製 XML,然後將其貼到 Access 2010 宏建立器。 宏會重新建立,就像您撰寫的一樣。

執行巨集

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

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

  • 使用RunMacroOnError巨集指令呼叫宏。

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

頁面頂端

調試宏

如果您無法順利執行宏,您可以使用幾種工具來取得問題的來源。

在宏中加入錯誤處理動作

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

使用下列程式將錯誤處理 submacro 到宏:

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

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

  3. 在 word Submacro右側的方塊中,輸入 Submacro 的名稱,例如ErrorHandler

  4. 從出現在Submacro組塊中的 [新增動作] 下拉式清單中,選取 [ MessageBox巨集指令]。

  5. 消息框中,輸入下列文字: = [MacroError]。 [描述]

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

  7. 將 [移至] 引數設定為 [宏名稱]。

  8. 在 [宏名稱] 方塊中,輸入錯誤處理 submacro 的名稱(在此範例中為ErrorHandler)。

  9. OnError巨集指令拖曳到宏的最上方。

下列圖例顯示含有OnError動作的宏,以及一個名為ErrorHandler的 Submacro。

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

OnError巨集指令會放置在宏的頂端,並在發生錯誤時呼叫ErrorHandler submacro。

ErrorHandler submacro 只有在由OnError動作呼叫時才會執行,並顯示描述錯誤的訊息方塊。

使用 [單步驟] 命令

單一步驟是宏偵錯模式,您可以用來一次執行一個宏動作。 執行每個動作之後,會出現一個對話方塊,其中會顯示該動作的相關資訊,以及產生的任何錯誤代碼。 不過,由於 [宏單步驟] 對話方塊中沒有錯誤的描述,因此我們建議您使用上一節所述的錯誤處理 submacro 方法。

若要開始單一步驟模式:

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

  2. 在 [設計] 索引標籤上,按一下 [工具] 群組中的 [單一步驟]。

  3. 儲存並關閉巨集。

下次執行宏時,就會出現 [宏單步驟] 對話方塊。 對話方塊會顯示每個動作的下列相關資訊:

  • 宏名稱

  • Condition (適用于 If 區塊)

  • 動作名稱

  • 引數

  • 錯誤編號(錯誤編號為0,表示沒有發生任何錯誤)

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

  • 若要查看宏中下一個動作的相關資訊,請按步驟

  • 若要停止目前正在執行的所有宏,請按一下 [停止所有宏]。 在您下一次執行宏時,單一步驟模式仍會生效。

  • 若要退出單步驟模式並繼續執行宏,請按一下 [繼續]。

    附註: 

    • 如果您在宏中的最後一個動作之後按下 [下一步],則在您下次執行宏時,單一步驟模式仍會生效。

    • 若要在執行宏時輸入單一步驟模式,請按 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 編輯器]。 在 [專案] 窗格中按兩下已轉換的宏,以查看及編輯模組。

頁面頂端

附註:  本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。 讓這些內容對您有所幫助是我們的目的。 告訴我們這項資訊是否有幫助? 這裡是供您參考的英文文章

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

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×