2026年11月6日 星期五

巨集與自動化入門:5 步驟錄製巨集並自動完成重複工作

每個月都要處理一份新的名單,第一件事就是:把標題列設成粗體、加上深藍色底、字改成白色、欄寬調整好。這套動作又煩又固定,做久了很想問:「能不能按一個鍵就搞定?」

可以,這就是巨集(Macro)的用途:把一連串固定的操作記錄下來,之後一鍵重播。本文以 Windows 11 + LibreOffice 26.2 系列(採「年.月」版本編號)示範,用第 13 篇的 signup.ods,做一個「格式化標題列」的巨集,同時會談巨集的安全性,這很重要。

文中的圖片為示意圖,不是實際畫面。

小提醒:不同版本或語言設定下,選單與對話框名稱可能略有差異。若找不到文中提到的選項,可以按 Shift+Esc(或「說明」→「搜尋指令」)直接輸入關鍵字尋找。

先搞懂:巨集是什麼?

觀念一:巨集就是「可重播的操作清單」。你可以用「錄製」的方式,讓 LibreOffice 記下你做的動作;也可以直接寫程式碼。LibreOffice 內建的巨集語言是 Basic。

觀念二:巨集有「存放位置」。存在「我的巨集」只有這台電腦能用;存在「文件」裡,則會跟著檔案走,換電腦也能用,但開啟時會有安全警告。

觀念三:巨集是「程式」,有安全風險。壞人可以把惡意程式藏在巨集裡。所以來路不明的檔案,絕對不要啟用它的巨集。這是使用巨集前最重要的觀念。

每次都手動做錄成巨集之後 1 選取標題列 2 設為粗體 3 字色改白色 4 背景改深藍 5 調整欄寬 錄製 FormatHeader按一個快捷鍵,全部完成 重複的固定動作,最適合交給巨集

圖 1 把重複的動作錄成一個巨集(示意圖)

名詞意思在哪裡
錄製巨集把操作記錄成巨集工具 → 巨集 → 錄製巨集
執行巨集重播已存的巨集工具 → 巨集 → 執行巨集
編輯巨集查看與修改程式碼工具 → 巨集 → 編輯巨集
巨集安全性控制哪些巨集可以執行工具 → 選項 → 安全性

步驟一:先確認巨集安全性

在動手錄製之前,先看看你的 LibreOffice 對巨集的安全等級。

1. 工具 → 選項 → LibreOffice → 安全性
2. 按「巨集安全性」按鈕
3. 查看目前等級(建議維持「高」或「非常高」)
4. 按「確定」

逐項說明:

  1. 低:所有巨集都直接執行,風險最高,不建議。
  2. 中:執行前會詢問,由你決定。
  3. 高:只執行有簽署,或位於受信任位置的巨集(通常是預設值)。
  4. 非常高:只執行位於受信任位置的巨集,最嚴格。
  5. 學習階段怎麼辦:你自己錄製、存在「我的巨集」裡的巨集,通常不受影響;若從別人那裡拿到的檔案,則維持高等級最安全。
巨集安全性等級 低全部直接執行不建議 中執行前詢問你要小心判斷 高只執行已簽署或受信任位置的巨集建議(常為預設) 非常高只執行受信任位置的巨集最嚴格 來路不明的檔案,不要啟用它的巨集

圖 2 巨集安全性等級(示意圖)

小提醒:安全性選項的位置、等級名稱與預設值,可能隨版本不同,請以你畫面上的為準,並發文前實際確認。文中建議維持高等級,是比較保守的做法,若你的環境有特殊需求,請先評估風險。

步驟二:錄製「格式化標題列」巨集

打開 signup.ods,我們來錄製:把第一列設成粗體、白字、深藍底。

【如果找不到「錄製巨集」】
工具 → 選項 → LibreOffice → 進階 → 勾選「啟用巨集錄製」
(部分版本需要先勾選,請確認後重新啟動)

【開始錄製】
1. 開啟 signup.ods,點選任一個儲存格
2. 工具 → 巨集 → 錄製巨集(畫面會出現「停止錄製」小視窗)
3. 選取 A1:E1
4. 按 Ctrl+B 設為粗體
5. 把字型色彩設為白色,儲存格背景色設為深藍色
6. 按「停止錄製」
7. 在儲存對話框中,選「我的巨集」→ Standard → Module1,
   按「新增巨集」,名稱輸入:FormatHeader,按「確定」

逐項說明:

  1. 錄製時動作要乾淨:只做你想記錄的操作,不要多餘的點選,否則也會被記下來。
  2. 停止錄製:一定要按停止,巨集才會被存起來。
  3. 名稱不要有空白、不要用數字開頭:建議用英文字母,如 FormatHeader。
  4. 存放位置:選「我的巨集」,所有文件都能用;日後若要跟著檔案走,再參考步驟五。
小提醒:巨集錄製器在 Calc 裡記得下來的動作有限,有些操作(例如部分選取方式)可能沒被錄下來。所以步驟三會教你看懂與修改程式碼。選單與對話框名稱請在 26.2 繁中版實際確認。

步驟三:執行巨集,並看懂程式碼

先把標題列的格式清掉(或開一份新的名單),再執行巨集看看效果。

1. 工具 → 巨集 → 執行巨集
2. 展開「我的巨集」→ Standard → Module1,選 FormatHeader,按「執行」
3. 標題列應該變成粗體、白字、深藍底
4. 工具 → 巨集 → 編輯巨集,查看程式碼

錄製下來的程式碼通常較長、較難讀。下面是同樣功能、比較精簡的手寫版本,可以貼進去取代:

Sub FormatHeader
    ' 取得目前的工作表
    Dim oSheet As Object
    Dim oHeader As Object
    Dim oCols As Object
    oSheet = ThisComponent.CurrentController.ActiveSheet

    ' 標題列:A1 到 E1
    oHeader = oSheet.getCellRangeByName("A1:E1")
    oHeader.CharWeight = com.sun.star.awt.FontWeight.BOLD
    oHeader.CharColor = RGB(255, 255, 255)
    oHeader.CellBackColor = RGB(31, 58, 95)

    ' 欄寬自動調整
    oCols = oSheet.getCellRangeByName("A1:E11").Columns
    oCols.OptimalWidth = True
End Sub

逐項說明:

  1. Sub ... End Sub:一個巨集的開始與結束,中間是要做的事。
  2. ThisComponent:代表目前這份文件,後面接 CurrentController.ActiveSheet,就是目前的工作表。
  3. getCellRangeByName("A1:E1"):取得一段儲存格範圍,接著就能設定它的格式。
  4. CharWeight、CharColor、CellBackColor:分別是字重、字色、背景色。RGB(31, 58, 95) 就是深藍色(#1f3a5f)。
  5. 單引號開頭的是註解:程式不會執行,是給人看的說明。
  6. RGB 想換色:把括號裡的三個數字(紅、綠、藍,0 到 255)換掉,就能換顏色。
Sub FormatHeader 1 oSheet = ThisComponent.CurrentController.ActiveSheet 2 oHeader = oSheet.getCellRangeByName("A1:E1") 3 oHeader.CharWeight = com.sun.star.awt.FontWeight.BOLD 4 oHeader.CellBackColor = RGB(31, 58, 95) 5 End Sub 6 ①巨集開始 ②取得目前工作表 ③指定要處理的範圍(標題列) ④設定粗體 ⑤設定背景色 ⑥巨集結束

圖 3 巨集程式碼的結構(示意圖)

小提醒:巨集的程式碼可能會依版本與環境略有差異,請在你的 26.2 實際貼上並執行確認。巨集改動資料的操作,不一定都能用 Ctrl+Z 復原,執行前請先備份檔案。

步驟四:指定快捷鍵,一鍵執行

每次都從選單找巨集還是麻煩,我們給它一個快捷鍵。

1. 工具 → 自訂,切到「鍵盤」頁籤
2. 範圍選「LibreOffice」(所有元件)或「Calc」
3. 類別選「LibreOffice 巨集」→ 我的巨集 → Standard → Module1
4. 右邊功能欄選 FormatHeader
5. 在上方快捷鍵清單中,選一組沒被佔用的組合(例如 Ctrl+Alt+M)
6. 按「修改」,再按「確定」
7. 回到 signup.ods,按剛設定的快捷鍵試試看

逐項說明:

  1. 避免衝突:選之前要看這組快捷鍵是不是已經被別的功能使用。如果清單中該組合已有功能,建議換一組。
  2. 範圍:設在「LibreOffice」是所有元件通用;設在「Calc」只在試算表中有效。
  3. 也可以放到工具列或按鈕:用「自訂」的工具列頁籤,或在工作表上放一個表單按鈕並指定巨集,操作比較多,本篇不展開。
小提醒:快捷鍵 Ctrl+Alt+M 只是範例,在你的系統或輸入法下可能被別的軟體佔用,請自行挑一組可用的並實測。「自訂」對話框的頁籤與類別名稱,請在 26.2 繁中版確認。

步驟五:保存巨集,並注意安全

巨集存在「我的巨集」,換一台電腦就沒有了。若希望它跟著檔案走,可以放進文件。

1. 工具 → 巨集 → 管理巨集 → LibreOffice Basic
2. 在清單中展開 signup.ods → Standard
3. 按「新增」,建立一個模組(Module1),再按「編輯」
4. 把 FormatHeader 的程式碼貼進去,存檔並關閉編輯視窗
5. 另存為 signup.ods,之後開啟時會出現巨集警告

逐項說明:

  1. 存在文件內的好處:檔案複製到哪,巨集就跟到哪。
  2. 開啟時的警告:你會看到「巨集已停用」之類的提示,只有確定檔案是你自己或可信任的人製作的,才選擇啟用。
  3. 另存 xlsx 的限制:LibreOffice 的 Basic 巨集,不一定能在 Excel 裡直接運作,兩邊的巨集語言與物件模型不同,如需交給 Excel 使用者,請改用其他方式(例如事先把格式設好)。
  4. 備份:改巨集前,先把原檔另存一份。
小提醒:「管理巨集」對話框的名稱、在文件裡新增模組的方式,請發文前實際操作確認。從網路下載的巨集,請務必先看過程式碼、確認用途,再決定要不要使用;不明來源的巨集不要啟用。

其實,不用寫程式也能「自動化」:前面學過的「樣式」(第 4 篇)、「範本」(第 4、17 篇)、「資料驗證」(第 13 篇)、「樞紐分析表」(第 15 篇),其實就是一種自動化。遇到重複的工作,先想想有沒有現成功能,再決定要不要用巨集。

最後存檔:signup.ods 內含 FormatHeader 巨集(或存在「我的巨集」),並設定好快捷鍵。

常用操作表

操作位置或方式用途
巨集安全性工具 → 選項 → LibreOffice → 安全性設定巨集的執行規則
啟用巨集錄製工具 → 選項 → LibreOffice → 進階顯示錄製功能
錄製巨集工具 → 巨集 → 錄製巨集記錄操作
執行巨集工具 → 巨集 → 執行巨集重播巨集
編輯巨集工具 → 巨集 → 編輯巨集查看與修改程式碼
管理巨集工具 → 巨集 → 管理巨集新增模組、複製或移動巨集
指定快捷鍵工具 → 自訂 → 鍵盤用快捷鍵執行巨集

新手常見問題

Q1:找不到「錄製巨集」?
可能需要先到「工具 → 選項 → LibreOffice → 進階」勾選啟用巨集錄製,並依提示重新啟動。是否有此選項,請以你的版本為準。

Q2:錄下來的巨集,執行結果跟我手動做的不一樣?
巨集錄製器在 Calc 中並不是所有操作都能完整記錄。這時就要像步驟三那樣,看懂程式碼,自己補寫或修改。

Q3:巨集可以在 Excel 裡用嗎?
不一定。LibreOffice 的 Basic 與 Excel 的 VBA 語言和物件模型不同,兩邊不保證互通,請務必實際測試。

Q4:開檔時跳出巨集警告,怎麼辦?
只有確定來源可信,才啟用巨集。不確定時,選擇停用,仍然可以正常看資料。

Q5:巨集執行後弄亂資料,可以復原嗎?
不一定能用 Ctrl+Z 完整復原,所以執行前一定要先備份。

小練習

  1. 確認你的巨集安全性目前是哪個等級,並想想為什麼不建議設成「低」。
  2. 錄製一個「在第 13 列加上合計」之類的簡單巨集,並命名、執行。
  3. 把 FormatHeader 的範圍從 A1:E1 改成 A1:F1,再執行,觀察差別。
  4. 把深藍色改成別的顏色(改 RGB 的三個數字),重新執行看看。
  5. 把巨集放進 signup.ods 並另存,關閉後重新開啟,觀察巨集警告,並決定是否啟用。

結語

這一篇的重點有三個:巨集是可重播的操作清單;要分清楚存在「我的巨集」還是文件裡;巨集是程式,有安全風險,來源不明的絕對不要啟用。先想有沒有現成功能,不夠用才寫巨集,這樣最有效率。

下一篇(第 22 篇)是 LibreOffice 入門系列的最後一篇:「從 Microsoft Office 搬家:5 步驟檢查相容性,順利改用 LibreOffice」,整理從 Word、Excel、PowerPoint 轉換的檢查清單,也會介紹 Markdown 匯入等新功能。

沒有留言:

張貼留言