自訂快速存取工具列:Excel 新增命令、VBA 巨集與活頁簿專屬設定

自訂快速存取工具列,可以把常用的 Excel 命令與 VBA 巨集放成快捷按鈕,甚至指定只在特定活頁簿顯示。贊贊小屋以銀行存款日報表為例,依序說明命令新增、巨集設定、移除方式,以及如何驗證活頁簿專屬工具列。

自訂快速存取工具列特色圖:上班族使用 Excel,工具列放有常用命令與 VBA 巨集按鈕,並區分所有文件與特定活頁簿兩種適用範圍

一、自訂快速存取工具列:開啟 Excel 設定選單

要自訂快速存取工具列,第一步是找到它的設定入口。贊贊小屋目前的 Excel 把快速存取工具列放在功能區下方,工具列最右側有一個向下的小箭頭,點選之後會展開一份選單,裡面列出「快速列印」、「預覽列印和列印」、「拼字檢查」、「復原」、「重做」、「遞增排序」、「遞減排序」、「觸控/滑鼠模式」等常用命令,可以直接勾選或取消。如果想加入的命令不在這份清單裡,就點選選單中的「其他命令(M)...」,Excel 會開啟完整的設定視窗。選單最下方還有「顯示在功能區上方(S)」、「隱藏快速存取工具列(H)」與「顯示命令標籤(L)」,分別用來調整工具列的位置、是否顯示,以及按鈕旁是否附上文字。

快速存取工具列與功能區的差別,在於功能區是依工作性質分成「常用」、「插入」、「公式」、「資料」、「檢視」等索引標籤,必須先切換到對應的標籤才能點到命令;快速存取工具列則不受目前停留在哪個標籤的影響,可以把來自不同標籤的命令集中放在一起,隨時一鍵點選。因此它比較像是依個人工作習慣配置的命令捷徑,而不是功能區的縮小版。

至於位置,放在功能區上方時畫面比較整齊,放在功能區下方則更靠近工作表,滑鼠移動的距離較短,不過會多占用一點工作表的顯示空間。兩種位置都可以隨時從上述選單切換,不影響已加入的命令。

Excel 快速存取工具列的下拉選單,列出常用命令、其他命令、顯示在功能區上方、隱藏快速存取工具列與顯示命令標籤 比較卡:功能區依工作性質分類,快速存取工具列依個人需求集中常用命令,結論是把不同功能區的常用命令集中到同一個位置

二、選擇命令與巨集

點選「其他命令(M)...」之後,會開啟「Excel 選項」視窗,左側已經自動切換到「快速存取工具列」,上方的標題寫著「自訂快速存取工具列。」。視窗中央有一個「由此選擇命令(C)」的下拉選單,預設顯示「常用命令」;贊贊小屋展開這個選單,可以看到「常用命令」、「不在功能區的命令」、「所有命令」與「巨集」四個項目,後面還接著各個索引標籤的名稱。這次要加入的是自己寫的 VBA 程式,所以選擇「巨集」。右側則是目前已經在工具列上的命令清單,從「Visual Basic 編輯器」、「檢視巨集」、「錄製巨集...」到「清除內容」、「凍結窗格」等,都是贊贊小屋平常工作會用到的項目。

這四個分類各有用途。「常用命令」只列出最常見的一部分功能;「不在功能區的命令」收錄沒有直接出現在任何索引標籤的操作;「所有命令」範圍最廣,遇到想不起放在哪個標籤的功能,可以先切到這裡再依名稱尋找;「巨集」則專門列出目前可以指定的 VBA 程序,這也是把自己的自動化程式變成按鈕的入口。

如果要加入的只是功能區上本來就有的一般命令,其實不用進入「Excel 選項」,直接在功能區的命令按鈕上按滑鼠右鍵,選擇「新增至快速存取工具列」就能完成,速度最快。巨集或比較少見的命令,才需要透過這個視窗來設定;錄製巨集後加入按鈕的做法,也可以參考 Excel 錄製巨集按鈕。

Excel 選項視窗中的由此選擇命令下拉選單,列出常用命令、不在功能區的命令、所有命令與巨集 判斷卡:四種命令分類怎麼選,常用命令、不在功能區的命令、所有命令與巨集各自對應不同需求

三、所有文件與特定活頁簿的差異

選擇「巨集」之後,左側的清單會列出目前可以使用的巨集。贊贊小屋的清單裡有許多以「PERSONAL.XLSB!」開頭的項目,這些是存放在個人巨集活頁簿裡的程式;清單最下方則有一個沒有這個前綴的「製作銀行存款日報表」,它是寫在目前開啟的 VBA3.xlsm 裡的巨集。右上角的「自訂快速存取工具列(Q)」下拉選單,則可以選擇這份設定的適用範圍:預設是「所有文件 (預設)」,另一個選項是目前開啟的「VBA3.xlsm」。前者代表不論開啟哪一份活頁簿,工具列都會出現這些命令;後者則只在這份指定的活頁簿中才會出現。

PERSONAL.XLSB 稱為個人巨集活頁簿,是 Excel 專門用來保存個人常用巨集的檔案。它通常會隨著 Excel 啟動而在背景隱藏開啟,所以其中的巨集可以在任何活頁簿裡使用,很適合存放整理資料、套用格式、公式轉數值這類通用的程式。不過 PERSONAL.XLSB 並不是 Excel 裝好就一定存在,通常是第一次錄製巨集並選擇儲存在「個人巨集活頁簿」時,才會由 Excel 建立。

這裡有一個很容易混淆的觀念:巨集存放在哪裡,和工具列設定套用在哪裡,是兩件不同的事。巨集寫在 VBA3.xlsm,並不代表只能把它指定給 VBA3.xlsm 的工具列;選擇「所有文件 (預設)」,也不會自動把巨集搬進 PERSONAL.XLSB。工具列只是替巨集建立一個執行入口,並不會改變程式碼實際存放的位置。

贊贊小屋依照自己的使用經驗,還觀察到一個和這個觀念有關的現象:如果把存放在 VBA3.xlsm 的巨集加進「所有文件 (預設)」的工具列,按下按鈕時,Excel 會試著去開啟該巨集所在的檔案,再執行裡面的程式;一旦那份檔案已經不在原來的位置,執行就可能失敗。這是贊贊小屋實際操作的經驗,不同的 Excel 版本與設定,結果可能不完全相同。不過這個現象正好說明,為什麼專用的巨集更適合只設定在自己的活頁簿裡,而不是放在所有文件通用的工具列上。

Excel 選項視窗的巨集清單,含 PERSONAL.XLSB 巨集與 VBA3.xlsm 的巨集,右上方可選擇所有文件或 VBA3.xlsm 作為工具列適用範圍 比較卡:巨集存放位置不等於工具列設定範圍,PERSONAL.XLSB 與 VBA3.xlsm 是存放位置,所有文件與特定活頁簿是工具列範圍

四、將 VBA 巨集加入指定活頁簿

了解範圍之後,就可以實際加入按鈕了。贊贊小屋先在右側的「自訂快速存取工具列(Q)」選擇「VBA3.xlsm」,此時左側清單顯示「<分隔符號>」與「製作銀行存款日報表」。贊贊小屋選取「製作銀行存款日報表」,再按下中間的「新增(A) >>」,將它加入右側的 VBA3.xlsm 專屬工具列,這個巨集就會出現在右側的清單裡。視窗下方的設定可以順便確認:「顯示快速存取工具列(S)」維持勾選,「工具列位置(O)」是「功能區下方」,「永遠顯示命令標籤(L)」則沒有勾選。確認無誤後,按下右下角的「確定」,設定就完成了。

這樣設定的目的,是讓使用者日後能直接透過快速存取工具列執行巨集,不必每次都進入「開發人員」索引標籤或巨集清單尋找程式。接著回到 Excel 工作表,確認按鈕是否成功加入。

那麼 VBA 巨集為什麼能變成按鈕?巨集本質上是一段寫好的程式,工具列按鈕只是呼叫這段程式的入口,所以使用者不必知道程式怎麼寫,也不需要開啟 Visual Basic 編輯器,就能執行已經設計好的流程。不過並不是所有的 VBA 程序都會出現在這個清單裡,一般來說,會出現在巨集清單的是標準模組中、公開且不需要傳入參數的 Sub 程序;需要參數的程序、設定為 Private 的程序,或是寫在工作表或 ThisWorkbook 模組裡的程序,通常不會顯示在巨集清單中,也就不能用這種方式直接加入。

在 Excel 選項中選擇 VBA3.xlsm,選取製作銀行存款日報表巨集並按新增,將它加入該活頁簿專屬的快速存取工具列 流程卡:將巨集加入指定活頁簿的四個步驟,選擇 VBA3.xlsm、選取製作銀行存款日報表、按新增、按確定

五、確認新增的 VBA 巨集按鈕

按下「確定」回到工作表後,贊贊小屋在 VBA3.xlsm 的快速存取工具列最右側,看到多了一個新的巨集圖示。把滑鼠移到圖示上,旁邊會浮出「製作銀行存款日報表」的提示文字,確認剛才指定的巨集已經成為工具列上的按鈕。此時工作表上開啟的是「銀行存款日報表」分頁,欄位有日期、摘要、收入、支出、餘額與備註,這正是這顆按鈕未來要處理的資料類型。

要特別區分的是,按鈕成功出現,只代表 Excel 已經建立了執行入口,並不代表巨集一定能順利跑完,實際結果要等到執行之後才知道。巨集可能需要特定的工作表名稱、固定的欄位,或參照其他活頁簿,只要工作環境和程式預期的不一致,仍然可能發生錯誤。所以新增按鈕之後,建議先用測試用的活頁簿試跑,尤其是會刪除、覆寫或大量更動資料的程式。

另一個需要提醒的是復原功能的差異。一般的 Excel 操作,例如輸入數值或刪除儲存格內容,可以用 Ctrl+Z 復原;但 VBA 巨集執行後,通常會清除 Excel 既有的復原紀錄,巨集造成的變更也往往無法用 Ctrl+Z 還原。面對銀行對帳資料這類重要的會計資料,比較安全的做法是保留原始資料,讓巨集產生新的報表,而不是直接改寫唯一的一份資料。

VBA3.xlsm 的快速存取工具列最右側出現新的巨集按鈕,滑鼠移上去顯示製作銀行存款日報表 判斷卡:按鈕出現不等於巨集已執行成功,已確認的是工具列出現按鈕,還要確認巨集能否正常執行

六、移除命令與修改設定

工具列上的按鈕不想用了,可以直接在按鈕上按滑鼠右鍵。贊贊小屋按下右鍵後出現的選單,第一項是「從快速存取工具列移除(R)」,點選就能把該按鈕拿掉;下方「快速存取工具列」區塊還有「在功能區上方顯示快速存取工具列(S)」、「隱藏快速存取工具列(H)」、「顯示命令標籤(L)」與「自訂快速存取工具列(C)...」,最下面的「功能區」區塊則有「摺疊功能區(N)」與「自訂功能區(R)...」。需要先說明的是,這裡只是查看移除的入口,贊贊小屋並沒有真的移除按鈕,後面的操作也仍然保留了這顆按鈕。

移除工具列上的按鈕,並不等於刪除 VBA 程式。就算把「製作銀行存款日報表」的按鈕移掉,儲存在 VBA3.xlsm 裡的程式碼依然存在,之後還是可以透過巨集清單執行,或是再回到設定視窗重新加入。這是因為 Excel 把「命令本身」和「執行入口」分開管理,調整工具列只是在調整介面。

如果已經累積了不少自訂按鈕,也可以在設定視窗右下方的「匯入/匯出(P)」把配置存成檔案,換電腦或重新安裝 Office 時再匯入,不用從頭一個一個設定。但匯出的是功能區與快速存取工具列的自訂配置,並不包含 VBA 程式碼本身;如果按鈕指向的是 PERSONAL.XLSB 裡的巨集,還得另外備份那份活頁簿,換了電腦才能順利執行。另外,依微軟快速存取工具列官方說明,匯入自訂檔案會取代原本的功能區與快速存取工具列自訂內容,所以匯入之前,建議先把現有設定匯出一份當作備份。

在快速存取工具列的按鈕上按右鍵,出現從快速存取工具列移除、顯示位置、隱藏與自訂功能區等選項 比較卡:移除工具列按鈕不等於刪除 VBA 程式碼,匯出設定不包含 VBA 程式碼,匯入設定會取代原本的自訂內容

七、驗證活頁簿專屬設定

最後一個步驟,是確認前面選擇「VBA3.xlsm」作為適用範圍的設定確實發揮作用。贊贊小屋保持 VBA3.xlsm 開啟,另外新建一份 Excel 活頁簿,標題列顯示為「活頁簿1」。這份新活頁簿的快速存取工具列依然保有平常的通用命令,右側展開的清單也列出「自動儲存」、「新增」、「開啟」、「儲存檔案」、「電子郵件」、「快速列印」、「預覽列印和列印」、「拼字檢查」、「復原」等項目,但前面在 VBA3.xlsm 中加入的「製作銀行存款日報表」按鈕並沒有出現。 <!-- spacing-ok -->

這個結果說明,前面選擇「VBA3.xlsm」後新增的巨集按鈕,只屬於那一份活頁簿,不會變成所有 Excel 文件共用的命令。換句話說,贊贊小屋這次完成的,不只是替 Excel 加了一個自訂按鈕,而是做出了一份只屬於特定活頁簿的自訂工具列。

這也帶出兩種設定可以同時並存的做法:像 Visual Basic 編輯器、清除內容、複製格式這類每份檔案都會用到的功能,適合放在「所有文件 (預設)」的通用工具列;像「製作銀行存款日報表」這種只在特定工作情境才會用到的程式,則放在對應的活頁簿裡。如此一來,會計報表有會計報表的按鈕,其他檔案仍維持乾淨的通用工具列,也不會因為把所有專用功能全塞進來,導致圖示太多、不容易找到。

新建的活頁簿1的快速存取工具列,只有通用命令,沒有製作銀行存款日報表的巨集按鈕 對照卡:VBA3.xlsm 看得到製作銀行存款日報表按鈕,活頁簿1 看不到,通用工具列命令兩邊都保留

依照工作需求建立自己的 Excel 工具列

回頭來看,快速存取工具列不只是把常用命令擺在手邊的捷徑,只要搭配 VBA 巨集,就能把自動化的流程整合進特定的工作內容。判斷哪些命令值得放進去,原則很簡單:最常使用、操作步驟又比較繁瑣的功能,放在最容易點選的位置;很少用到的功能,留在原本的功能區就好。放進去的命令不必多,但要真的能縮短每天重複的操作。

至於哪些放在通用工具列、哪些只屬於特定活頁簿,可以依照檔案的用途來區分:通用的整理與格式功能放在「所有文件 (預設)」,只在某份報表才用得到的巨集,就設定在那份活頁簿裡。贊贊小屋的做法是讓每份檔案帶著自己需要的按鈕,開啟的時候就能直接使用,不必每次都從巨集清單裡尋找;你也可以依照自己的工作流程,替不同的 Excel 檔案配置各自的工具列。

總結卡:通用功能放在所有文件,專用 VBA 巨集放在特定活頁簿,通用功能全域配置、專用功能依活頁簿配置
發布日期:
分類:Excel教學、Excel巨集程式