如何在 Excel 中儲存您的 VBA 巨集,並在所有活頁簿中使用?
在許多情況下,您可能需要在不同的 Excel 工作表中反覆使用相同的 VBA 巨集,例如自動化重複計算、設定資料格式,或執行自訂函數(如將數字轉換為文字)。然而,巨集預設僅儲存在建立它的活頁簿中,導致無法直接在新檔案中存取或重複使用,這常成為一大挑戰。所幸,Excel 提供多種彈性方法,讓您的 VBA 巨集能全域通用,無需每次開啟新工作簿時重新複製程式碼。本教學將完整說明各種實用方法,助您輕鬆將 VBA 巨集應用於所有活頁簿,大幅提升工作效率與操作流暢度。

舉例來說,假設您希望透過自訂 VBA 程式碼將數字轉換為對應的英文文字,並確保無論在哪個活頁簿中工作,此功能都能隨時使用。只要採用正確的方法,您就能儲存 VBA 模組,讓它在 Excel 中隨時隨地重複使用。這對於您希望每次都能直接調用的自訂函數或自動化功能尤其實用,無需在多個檔案中反覆複製程式碼。
為達成此目的,您可以將 VBA 程式碼封裝成自訂 Excel 增益集,在 Excel 中啟用後,即可將您的自訂功能以全域可用函數的形式公開。
請依照下列步驟操作:
1. 在 Excel 中按下 Alt + F11,即可開啟「Microsoft Visual Basic for Applications」視窗!
2. 在 VBA 編輯器中,點選插入> 模組,並將下列巨集貼上至新建立的模組視窗中。
VBA 程式碼:轉換金額轉大寫
Function NumberstoWords(ByVal MyNumber)
'Update by ExtendofficeDim xStr As StringDim xFNum As IntegerDim xStrPointDim xStrNumberDim xPoint As StringDim xNumber As StringDim xP() As VariantDim xDPDim xCnt As IntegerDim xResult, xT As StringDim xLen As IntegerOn Error Resume NextxP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP >0 ThenxPoint = " point "
xStr = Mid(xNumber, xDP +1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum =1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum,1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNumxNumber = Trim(Left(xNumber, xDP -1))
End IfxCnt =0xResult = ""
xT = ""
xLen =0xLen = Int(Len(Str(xNumber)) /3)
If (Len(Str(xNumber)) Mod3) =0 Then xLen = xLen -1Do While xNumber <> ""
If xLen = xCnt ThenxT = GetHundredsDigits(Right(xNumber,3), False)
ElseIf xCnt =0 ThenxT = GetHundredsDigits(Right(xNumber,3), True)
ElsexT = GetHundredsDigits(Right(xNumber,3), False)
End IfEnd IfIf xT <> "" ThenxResult = xT & xP(xCnt) & xResultEnd IfIf Len(xNumber) >3 ThenxNumber = Left(xNumber, Len(xNumber) -3)
ElsexNumber = ""
End IfxCnt = xCnt +1LoopxResult = xResult & xPointNumberstoWords = xResultEnd FunctionFunction GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As StringDim xStrNum As StringDim xStr As StringDim xI As IntegerDim xBB As BooleanxStrNum = xHDgtxRStr = ""
On Error Resume NextxBB = TrueIf Val(xStrNum) =0 Then Exit FunctionxStrNum = Right("000" & xStrNum,3)
xStr = Mid(xStrNum,1,1)
If xStr <> "0" ThenxRStr = GetDigits(Mid(xStrNum,1,1)) & "Hundred "
ElseIf xB ThenxRStr = "and "
xBB = FalseElsexRStr = " "
xBB = FalseEnd IfEnd IfIf Mid(xStrNum,2,2) <> "00" ThenxRStr = xRStr & GetTenDigits(Mid(xStrNum,2,2), xBB)
End IfGetHundredsDigits = xRStrEnd FunctionFunction GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As StringDim xI As IntegerDim xArr_1() As VariantDim xArr_2() As VariantDim xT As BooleanxArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = TrueOn Error Resume NextIf Val(Left(xTDgt,1)) =1 ThenxI = Val(Right(xTDgt,1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
ElsexI = Val(Left(xTDgt,1))
If Val(Left(xTDgt,1)) >1 ThenIf xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt,1)))
xT = FalseEnd IfIf xStr = "" ThenIf xB ThenxStr = "and "
End IfEnd IfIf Right(xTDgt,1) <> "0" ThenxStr = xStr & GetDigits(Right(xTDgt,1))
End IfEnd IfGetTenDigits = xStrEnd FunctionFunction GetDigits(xDgt)
Dim xStr As StringDim xArr_1() As VariantxArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume NextxStr = xArr_1(Val(xDgt))
GetDigits = xStrEnd Function 3. 現在,請點擊視窗左上角的「儲存」圖示,或直接按下 Ctrl + S,即可開啟「另存新檔」對話方塊。
4. 在「另存新檔」視窗中,於「檔案名稱」欄位輸入所需檔名,並務必在「指定保存格式」下拉選單中選取 Excel 增益集(*.xlam)。
5. 按一下「儲存」按鈕,將您的活頁簿儲存為 Excel 增益集檔案,即可建立一個可重複使用的增益集,隨時在任何活頁簿中啟用。
6. 儲存後,返回 Excel,並關閉剛才已轉換為增益集的活頁簿。
7. 開啟一個新的或現有的活頁簿,即可使用您的巨集。在適當的儲存格(例如 B2)中輸入自訂公式:
=NumberstoWords(A2) 
8. 前往開發人員索引標籤,並在增益集群組中點選 Excel 增益集按鈕。
9. 在出現的增益集對話方塊中,選取瀏覽。
10. 找到並選取先前儲存的增益集檔案,然後點擊確定。
11. 您的自訂增益集(例如「數字轉文字增益集」)現在應已出現在增益集清單中。請確認已勾選,然後按一下確定以啟用它。
12. 現在,在目標儲存格(例如 B2)中再次輸入自訂函數,並按下 Enter,即可看到公式正確傳回對應數字的英文文字!
=NumberstoWords(A2) 13. 若要快速將轉換公式套用至多個數字,請向下拖曳儲存格的自動填滿控制點,即可將函數複製到其他儲存格。

提示與注意事項:
- 將巨集儲存為增益集,即可在所有活頁簿中使用相同的自訂函數、程式碼或自動化功能,不僅節省時間,更確保操作的一致性。
- 若 Excel 已關閉,或稍後停用增益集,其中的函數可能會暫時顯示「#NAME?」錯誤,直到增益集重新載入為止。為避免混淆,請務必在需要時透過增益集管理員確保該增益集始終處於啟用狀態。
- 部分使用者預設可能看不到「開發人員」索引標籤。若要啟用,請在功能區上按一下滑鼠右鍵,選取「自訂功能區」,然後勾選「開發人員」選項。
- 建議將增益集儲存在永久性資料夾中,以免因檔案移動或重新命名而遺失參照。
若您偏好手動執行程式碼,這也是可行的,且在除錯或臨時使用時有時相當實用:
- 您可以將巨集指派至快速存取工具列,一鍵即可在任何可見的活頁簿中執行!操作方式很簡單:在快速存取工具列上按一下滑鼠右鍵,選擇「自訂快速存取工具列」,然後新增您的巨集。

- 您也可以按下 Alt + F11 開啟 VBA 編輯器,手動選取您的巨集,再按下 F5 依需求執行程式碼。
優點:此解決方案讓您輕鬆建立並分享功能強大、可重複使用的巨集——只要啟用增益集,即可立即運作!
缺點:使用者需記得載入增益集;若要共用活頁簿,還必須一併提供增益集檔案與函數說明。此外,增益集無法於 Excel Online 中使用。
另一種極其實用的方法是使用個人巨集活頁簿(PERSONAL.XLSB),讓您最喜愛或最常用的巨集在每次 Excel 工作階段中皆可隨時取用,無論開啟哪個活頁簿都一樣。這是一個特殊的隱藏 Excel 檔案,每次啟動 Excel 時都會自動載入,確保其中儲存的所有巨集都能在所有開啟的活頁簿中輕鬆存取。
適用情境:適用於個人自動化、例行格式設定腳本,或無需正式作為 Excel 增益集共用的公用程式函數。儲存在 PERSONAL.XLSB 中的巨集,在您的電腦上隨時可用,不受開啟檔案影響!
優點:巨集可於您的本機 Excel 設定檔中全域使用,無需安裝增益集或額外檔案。
缺點:以此方式儲存的巨集僅能在 PERSONAL.XLSB 存在的電腦與帳戶上使用;若要與他人分享,必須手動匯出並匯入模組。
- 若要使用此方法,您必須先錄製或建立巨集,並確保將其儲存至個人巨集活頁簿。
請依照下列步驟操作:
- 開啟 Excel。在檢視索引標籤中,點選巨集,再點選錄製巨集。
- 在對話方塊中,於「巨集儲存於」下拉選單選取個人巨集活頁簿。完成錄製(若不需要,可立即停止)。
- 按下 Alt + F11 進入 VBA 編輯器後,您將看到名為 PERSONAL.XLSB 的專案。請在此插入新模組,或貼上所需的巨集程式碼!
- 儲存變更。Excel 將自動在啟動資料夾中建立並維護 PERSONAL.XLSB 活頁簿。
- PERSONAL.XLSB 中的巨集可透過巨集對話方塊(Alt + F8)執行,也可指派至功能區或工具列按鈕,或直接從 VBA 呼叫。
疑難排解與維護:若 PERSONAL.XLSB 中的巨集無法使用,請先確認 Excel 是否以安全模式啟動,或巨集安全性設定是否為「停用所有巨集」。此外,PERSONAL.XLSB 預設為隱藏檔案;若您不慎在關閉時未儲存,甚至誤刪該檔案,可能需重新錄製巨集以重新產生它。
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB列出 Excel 中所有增益集的 VBA 程式碼
在 Excel 中,您可能已新增多個增益集以提升資料處理效率。雖然可透過「選項」視窗檢視所有增益集,但有沒有辦法直接將它們列在工作表中?本教學提供一段實用 VBA 程式碼,立即幫您列出 Excel 中的所有增益集!
如何在開啟或關閉活頁簿時執行 VBA 巨集?
本文將說明如何在每次開啟或關閉活頁簿時,自動執行 VBA 程式碼。
如何保護/鎖定 Excel 中的 VBA 程式碼?
就如同您能以密碼保護活頁簿與工作表一樣,也能設定密碼來保護 Excel 中的巨集。
如何在執行 VBA 巨集後加入時間延遲?
在某些情況下,您可能需要設定計時器延遲,讓 Excel 中的 VBA 巨集在指定時間後才觸發。例如,點擊執行巨集後,延遲 10 秒才生效。本文將介紹一種實現此功能的實用方法!
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用
