執行巨集

在 Microsoft Excel 中執行巨集的方法有許多種。巨集就是可用來自動執行工作的一個或一組動作。而巨集是以 Visual Basic for Applications 程式設計語言錄製而成的,您只要按一下功能區上的 [巨集] 命令,就能執行巨集。根據指定給巨集的執行方式,您或許還能夠藉由按下 CTRL 組合快速鍵、按一下 [快速存取工具列] 上或功能區的自訂群組中的按鈕,或是按一下某個物件、圖形或控制項上的某個區域,來執行巨集。此外,您還可以在開啟活頁簿時自動執行巨集。

附註: 當您把 Excel 的巨集安全性層級設定為 [停用所有巨集 (不事先通知)] 時,Excel 只會執行那些已經過數位簽章或存放在信任位置 (如電腦上的 Excel 啟動資料夾) 中的巨集。如果您要執行的巨集沒有數位簽章,也沒有存放在信任的位置中,您可以暫時將安全性層級變更為可啟用所有巨集的層級。

執行巨集之前

您可能必須先變更 Excel 的幾項設定,才能執行巨集:

  1. 如果您沒有看到 [開發人員] 索引標籤,請顯示該索引標籤。如需詳細資訊,請參閱顯示 [開發人員] 索引標籤

  2. 若要暫時設定安全性層級來啟用所有巨集,請執行下列操作:

    1. 按一下 [開發人員] 索引標籤上 [程式碼] 群組中的 [巨集安全性]

      功能區上的 [開發人員] 索引標籤
    2. 在 [巨集設定] 類別中,按一下 [巨集設定] 底下的 [啟用所有巨集 (不建議使用; 會執行有潛在危險的程式碼)],然後按一下 [確定]。

      附註: 若要防止執行可能具有危險性的程式碼,建議您在結束使用巨集之後,恢復您當初停用所有巨集的任何一項設定。

  1. 開啟含有巨集的活頁簿。

  2. 在 [開發人員] 索引標籤上,按一下 [程式碼] 群組中的 [巨集]。

    功能區上的 [開發人員] 索引標籤
  3. 在 [巨集名稱] 方塊中,按一下要執行的巨集。

  4. 執行下列其中一項操作:

    • 您也可以按下 CTRL+F8 來執行巨集。若要停止巨集,請按下 ESC 鍵。

    • 若要從 Microsoft Visual Basic for Applications (VBA) 模組執行巨集,請按一下 [編輯],然後按一下 [執行] 功能表上的 [執行 Sub/UserForm],或是按下 F5。

  1. 在 [開發人員] 索引標籤上,按一下 [程式碼] 群組中的 [巨集]。

    功能區上的 [開發人員] 索引標籤
  2. 在 [巨集名稱] 方塊中,按一下您要指定給某個 Ctrl 組合快速鍵的巨集。

  3. 按一下 [選項]

    [巨集選項] 對話方塊隨即出現。

  4. 在 [快速鍵] 方塊中,輸入您要與 Ctrl 鍵搭配使用的任何大小寫字母。

    附註: 當 Excel 開啟包含該巨集的活頁簿時,您設定的快速鍵將會覆寫所有按鍵相同的預設 Excel 快速鍵。

    如需 Excel 中已指定的 Ctrl 組合快速鍵清單,請參閱文章:Excel 快速鍵及功能鍵

  5. 請在 [描述] 方塊中輸入巨集的描述文字。

  6. 按一下 [確定] 儲存您的變更,然後按一下 [取消] 關閉 [巨集] 對話方塊。

若要利用 [快速存取工具列] 上的按鈕來執行巨集,您必須先在工具列上新增按鈕。如需做法,請參閱將巨集指定給按鈕

您可以建立顯示在功能區的某個索引標籤上的自訂群組,然後將巨集指定給該群組中的某個按鈕。舉例來說,您可以在 [開發人員] 索引標籤上新增名為「我的巨集」的自訂群組,然後把巨集 (顯示為按鈕) 新增到新的群組中。如需做法,請參閱將巨集指定給按鈕

按一下圖形物件上的某個區域來執行巨集

您可以在圖形上建立作用區,讓使用者能按一下來執行巨集。

  1. 在工作表中插入圖形物件,例如圖片、美工圖案、圖案或 SmartArt。

    若要了解如何插入圖形物件,請參閱新增、變更或刪除圖案

  2. 若要在現有物件上建立作用區,請按一下 [插入] > [圖案],再選取您要使用的圖案,然後在現有物件上繪製該圖案。

    圖案
  3. 用滑鼠右鍵按一下您建立的作用區,然後按一下 [指定巨集]。

  4. 執行下列其中一項操作:

    • 若要指定現有的巨集給圖形物件,請按兩下巨集,或是在 [巨集名稱] 方塊中輸入巨集的名稱。

    • 若要錄製新的巨集以指定給選取的圖形物件,請按一下 [錄製],然後在 [錄製巨集] 對話方塊中輸入巨集的名稱,再按一下 [確定] 開始錄製巨集。當完成錄製巨集之後,在 [程式碼] 群組中,按一下 [開發人員] 索引標籤上的 [停止錄製] 按鈕影像

      提示: 您也可以按一下狀態列左邊的 [停止錄製] 按鈕影像

    • 若要編輯現有的巨集,請按一下 [巨集名稱] 方塊中的巨集名稱,然後按一下 [編輯]。

  5. 按一下 [確定]

  6. 選取工作表中的作用區,[繪圖] 工具會隨即顯示,其中還有 [格式] 索引標籤。

  7. 在 [格式] 索引標籤的 [圖案樣式] 群組中,按一下 [圖案填滿] 旁的箭號,然後按一下 [無填滿]。

    [圖案填滿] 色彩選項功能表

  8. 按一下 [圖案外框] 旁的箭號,再按一下 [無外框]

如果您錄製了一個巨集,並以 Auto_Open 為名來儲存,則每當您開啟含有這個巨集的活頁簿時,這個巨集就會執行。另一個能在您開啟活頁簿時自動執行巨集的方法,就是利用 Visual Basic 編輯器在活頁簿的 Open 事件中編寫 VBA 程序。Open 事件是內建的活頁簿事件,會在您每次開啟活頁簿時執行該事件的巨集程式碼。

建立 Auto_Open 巨集

  1. 如果想要將巨集與特定的活頁簿一起儲存,請先開啟該活頁簿。

  2. 在 [開發人員] 索引標籤上,按一下 [程式碼] 群組中的 [錄製巨集]。

  3. 在 [巨集名稱] 方塊中,輸入 Auto_Open

  4. 在 [將巨集儲存在] 清單中,選取要儲存巨集的活頁簿。

    提示: 如果您要讓自己在使用 Excel 期間隨時都能夠使用某個巨集,請選取 [個人巨集活頁簿]。當您選取 [個人巨集活頁簿] 時,如果電腦裡還沒有隱藏的個人巨集活頁簿 (Personal.xlsb),Excel 就會建立一個,並將巨集儲存在這個活頁簿中。在 Windows Vista 中,這個活頁簿儲存在 C:\Users\使用者名稱\AppData\Local\Microsoft\Excel\XLStart 資料夾裡。如果您沒有在這個資料夾找到活頁簿,它可能儲存在 Roaming 子資料夾中,而不是在 Local 裡。在 Microsoft Windows XP 中,這個活頁簿儲存在 C:\Documents and Settings\使用者名稱\Application Data\Microsoft\Excel\XLStart 資料夾裡。每當您啟動 Excel 時,XLStart 資料夾中的活頁簿會自動開啟。如果您要讓個人巨集活頁簿中的巨集自動在另一個活頁簿中執行,您也必須把該活頁簿儲存在 XLStart 資料夾中,讓 Excel 在啟動時能同時開啟這兩個活頁簿。

  5. 按一下 [確定],然後執行要錄製的動作。

  6. 在 [開發人員]索引標籤的 [程式碼] 群組中,按一下 [停止錄製] 按鈕影像

    提示: 您也可以按一下狀態列左側的 [停止錄製]。

    狀態列上的 [停止錄製] 按鈕

附註: 

  • 如果在步驟 6 選擇將巨集儲存於 [現用活頁簿][新增活頁簿],請將該活頁簿儲存或移至其中一個 XLStart 資料夾。

  • 錄製 Auto_Open 巨集有以下的限制:

    • 如果儲存 Auto_Open 巨集的活頁簿已經在其 Open 事件中包含了 VBA 程序,則 Open 事件的 VBA 程序會覆寫 Auto_Open 巨集中的所有動作。

    • 使用 Open 事件來以程式設計的方式開啟活頁簿時,會忽略 Auto_Open 巨集。

    • Auto_Open 巨集會在任何其他活頁簿開啟前先執行。因此,如果在預設的 Book1 活頁簿上,或是從 XLStart 資料夾中載入的活頁簿上錄製想要 Excel 執行的動作,則在重新啟動 Excel 時 Auto_Open 巨集會失敗,因為巨集會在開啟預設及啟動的活頁簿前先執行。

      如果遇到這些限制,您必須建立 Open 事件的 VBA 程序來代替錄製 Auto_Open 巨集,如本文下一節所述。

  • 如果想要在 Excel 啟動時不執行 Auto_Open 巨集,請在啟動 Excel 時按住 SHIFT 鍵。

為活頁簿的 Open 事件建立 VBA 程序

下列範例會在您開啟活頁簿時使用 Open 事件來執行巨集。

  1. 儲存並關閉任何開啟的活頁簿。

  2. 開啟要新增巨集的活頁簿,或是建立新的活頁簿。

  3. 在 [開發人員] 索引標籤上,按一下 [程式碼] 群組中的 [Visual Basic]。

  4. 在 [專案總管] 視窗中,以滑鼠右鍵按一下 [ThisWorkbook] 物件,然後按一下 [檢視程式碼]

    提示: 如果您沒有看到 [專案總管] 視窗,請按一下 [檢視] 功能表中的 [專案總管]。

  5. 在程式碼視窗上方的 [物件] 清單中,選取 [Workbook]。

    這會自動為 Open 事件建立空白的程序,例如:

    Private Sub Workbook_Open()

    End Sub

  6. 在程序中新增下列幾行程式碼:

    Private Sub Workbook_Open()
    MsgBox Date
    Worksheets("Sheet1").Range("A1").Value = Date
    End Sub

  7. 切換至 Excel 並將活頁簿儲存為啟用巨集的活頁簿 (.xlsm)。

  8. 關閉並重新開啟活頁簿。當您再次開啟檔案時,Excel 會執行 Workbook_Open 程序,會在訊息方塊中顯示今天的日期。

  9. 按一下訊息方塊中的 [確定]。

    附註: Sheet1 的 A1 儲存格也會包含日期,這是執行 Workbook_Open 程序的結果。

需要更多協助嗎?

您可以隨時詢問 Excel 技術社群中的專家、在 Answers 社群取得支援,或是在 Excel User Voice 上建議新功能或增強功能

頁面頂端

請參閱

開啟活頁簿時自動執行巨集

使用巨集錄製器自動化工作

錄製能在 Excel 啟動時開啟特定活頁簿的巨集

在單一活頁簿中建立並儲存您的所有巨集

儲存巨集

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×