每個月都要處理一份新的名單,第一件事就是:把標題列設成粗體、加上深藍色底、字改成白色、欄寬調整好。這套動作又煩又固定,做久了很想問:「能不能按一個鍵就搞定?」
可以,這就是巨集(Macro)的用途:把一連串固定的操作記錄下來,之後一鍵重播。本文以 Windows 11 + LibreOffice 26.2 系列(採「年.月」版本編號)示範,用第 13 篇的 signup.ods,做一個「格式化標題列」的巨集,同時會談巨集的安全性,這很重要。
文中的圖片為示意圖,不是實際畫面。
先搞懂:巨集是什麼?
觀念一:巨集就是「可重播的操作清單」。你可以用「錄製」的方式,讓 LibreOffice 記下你做的動作;也可以直接寫程式碼。LibreOffice 內建的巨集語言是 Basic。
觀念二:巨集有「存放位置」。存在「我的巨集」只有這台電腦能用;存在「文件」裡,則會跟著檔案走,換電腦也能用,但開啟時會有安全警告。
觀念三:巨集是「程式」,有安全風險。壞人可以把惡意程式藏在巨集裡。所以來路不明的檔案,絕對不要啟用它的巨集。這是使用巨集前最重要的觀念。
圖 1 把重複的動作錄成一個巨集(示意圖)
| 名詞 | 意思 | 在哪裡 |
|---|---|---|
| 錄製巨集 | 把操作記錄成巨集 | 工具 → 巨集 → 錄製巨集 |
| 執行巨集 | 重播已存的巨集 | 工具 → 巨集 → 執行巨集 |
| 編輯巨集 | 查看與修改程式碼 | 工具 → 巨集 → 編輯巨集 |
| 巨集安全性 | 控制哪些巨集可以執行 | 工具 → 選項 → 安全性 |
步驟一:先確認巨集安全性
在動手錄製之前,先看看你的 LibreOffice 對巨集的安全等級。
1. 工具 → 選項 → LibreOffice → 安全性 2. 按「巨集安全性」按鈕 3. 查看目前等級(建議維持「高」或「非常高」) 4. 按「確定」
逐項說明:
- 低:所有巨集都直接執行,風險最高,不建議。
- 中:執行前會詢問,由你決定。
- 高:只執行有簽署,或位於受信任位置的巨集(通常是預設值)。
- 非常高:只執行位於受信任位置的巨集,最嚴格。
- 學習階段怎麼辦:你自己錄製、存在「我的巨集」裡的巨集,通常不受影響;若從別人那裡拿到的檔案,則維持高等級最安全。
圖 2 巨集安全性等級(示意圖)
步驟二:錄製「格式化標題列」巨集
打開 signup.ods,我們來錄製:把第一列設成粗體、白字、深藍底。
【如果找不到「錄製巨集」】 工具 → 選項 → LibreOffice → 進階 → 勾選「啟用巨集錄製」 (部分版本需要先勾選,請確認後重新啟動) 【開始錄製】 1. 開啟 signup.ods,點選任一個儲存格 2. 工具 → 巨集 → 錄製巨集(畫面會出現「停止錄製」小視窗) 3. 選取 A1:E1 4. 按 Ctrl+B 設為粗體 5. 把字型色彩設為白色,儲存格背景色設為深藍色 6. 按「停止錄製」 7. 在儲存對話框中,選「我的巨集」→ Standard → Module1, 按「新增巨集」,名稱輸入:FormatHeader,按「確定」
逐項說明:
- 錄製時動作要乾淨:只做你想記錄的操作,不要多餘的點選,否則也會被記下來。
- 停止錄製:一定要按停止,巨集才會被存起來。
- 名稱不要有空白、不要用數字開頭:建議用英文字母,如 FormatHeader。
- 存放位置:選「我的巨集」,所有文件都能用;日後若要跟著檔案走,再參考步驟五。
步驟三:執行巨集,並看懂程式碼
先把標題列的格式清掉(或開一份新的名單),再執行巨集看看效果。
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
逐項說明:
- Sub ... End Sub:一個巨集的開始與結束,中間是要做的事。
- ThisComponent:代表目前這份文件,後面接 CurrentController.ActiveSheet,就是目前的工作表。
- getCellRangeByName("A1:E1"):取得一段儲存格範圍,接著就能設定它的格式。
- CharWeight、CharColor、CellBackColor:分別是字重、字色、背景色。RGB(31, 58, 95) 就是深藍色(#1f3a5f)。
- 單引號開頭的是註解:程式不會執行,是給人看的說明。
- RGB 想換色:把括號裡的三個數字(紅、綠、藍,0 到 255)換掉,就能換顏色。
圖 3 巨集程式碼的結構(示意圖)
步驟四:指定快捷鍵,一鍵執行
每次都從選單找巨集還是麻煩,我們給它一個快捷鍵。
1. 工具 → 自訂,切到「鍵盤」頁籤 2. 範圍選「LibreOffice」(所有元件)或「Calc」 3. 類別選「LibreOffice 巨集」→ 我的巨集 → Standard → Module1 4. 右邊功能欄選 FormatHeader 5. 在上方快捷鍵清單中,選一組沒被佔用的組合(例如 Ctrl+Alt+M) 6. 按「修改」,再按「確定」 7. 回到 signup.ods,按剛設定的快捷鍵試試看
逐項說明:
- 避免衝突:選之前要看這組快捷鍵是不是已經被別的功能使用。如果清單中該組合已有功能,建議換一組。
- 範圍:設在「LibreOffice」是所有元件通用;設在「Calc」只在試算表中有效。
- 也可以放到工具列或按鈕:用「自訂」的工具列頁籤,或在工作表上放一個表單按鈕並指定巨集,操作比較多,本篇不展開。
步驟五:保存巨集,並注意安全
巨集存在「我的巨集」,換一台電腦就沒有了。若希望它跟著檔案走,可以放進文件。
1. 工具 → 巨集 → 管理巨集 → LibreOffice Basic 2. 在清單中展開 signup.ods → Standard 3. 按「新增」,建立一個模組(Module1),再按「編輯」 4. 把 FormatHeader 的程式碼貼進去,存檔並關閉編輯視窗 5. 另存為 signup.ods,之後開啟時會出現巨集警告
逐項說明:
- 存在文件內的好處:檔案複製到哪,巨集就跟到哪。
- 開啟時的警告:你會看到「巨集已停用」之類的提示,只有確定檔案是你自己或可信任的人製作的,才選擇啟用。
- 另存 xlsx 的限制:LibreOffice 的 Basic 巨集,不一定能在 Excel 裡直接運作,兩邊的巨集語言與物件模型不同,如需交給 Excel 使用者,請改用其他方式(例如事先把格式設好)。
- 備份:改巨集前,先把原檔另存一份。
其實,不用寫程式也能「自動化」:前面學過的「樣式」(第 4 篇)、「範本」(第 4、17 篇)、「資料驗證」(第 13 篇)、「樞紐分析表」(第 15 篇),其實就是一種自動化。遇到重複的工作,先想想有沒有現成功能,再決定要不要用巨集。
最後存檔:signup.ods 內含 FormatHeader 巨集(或存在「我的巨集」),並設定好快捷鍵。
常用操作表
| 操作 | 位置或方式 | 用途 |
|---|---|---|
| 巨集安全性 | 工具 → 選項 → LibreOffice → 安全性 | 設定巨集的執行規則 |
| 啟用巨集錄製 | 工具 → 選項 → LibreOffice → 進階 | 顯示錄製功能 |
| 錄製巨集 | 工具 → 巨集 → 錄製巨集 | 記錄操作 |
| 執行巨集 | 工具 → 巨集 → 執行巨集 | 重播巨集 |
| 編輯巨集 | 工具 → 巨集 → 編輯巨集 | 查看與修改程式碼 |
| 管理巨集 | 工具 → 巨集 → 管理巨集 | 新增模組、複製或移動巨集 |
| 指定快捷鍵 | 工具 → 自訂 → 鍵盤 | 用快捷鍵執行巨集 |
新手常見問題
Q1:找不到「錄製巨集」?
可能需要先到「工具 → 選項 → LibreOffice → 進階」勾選啟用巨集錄製,並依提示重新啟動。是否有此選項,請以你的版本為準。
Q2:錄下來的巨集,執行結果跟我手動做的不一樣?
巨集錄製器在 Calc 中並不是所有操作都能完整記錄。這時就要像步驟三那樣,看懂程式碼,自己補寫或修改。
Q3:巨集可以在 Excel 裡用嗎?
不一定。LibreOffice 的 Basic 與 Excel 的 VBA 語言和物件模型不同,兩邊不保證互通,請務必實際測試。
Q4:開檔時跳出巨集警告,怎麼辦?
只有確定來源可信,才啟用巨集。不確定時,選擇停用,仍然可以正常看資料。
Q5:巨集執行後弄亂資料,可以復原嗎?
不一定能用 Ctrl+Z 完整復原,所以執行前一定要先備份。
小練習
- 確認你的巨集安全性目前是哪個等級,並想想為什麼不建議設成「低」。
- 錄製一個「在第 13 列加上合計」之類的簡單巨集,並命名、執行。
- 把 FormatHeader 的範圍從 A1:E1 改成 A1:F1,再執行,觀察差別。
- 把深藍色改成別的顏色(改 RGB 的三個數字),重新執行看看。
- 把巨集放進 signup.ods 並另存,關閉後重新開啟,觀察巨集警告,並決定是否啟用。
結語
這一篇的重點有三個:巨集是可重播的操作清單;要分清楚存在「我的巨集」還是文件裡;巨集是程式,有安全風險,來源不明的絕對不要啟用。先想有沒有現成功能,不夠用才寫巨集,這樣最有效率。
下一篇(第 22 篇)是 LibreOffice 入門系列的最後一篇:「從 Microsoft Office 搬家:5 步驟檢查相容性,順利改用 LibreOffice」,整理從 Word、Excel、PowerPoint 轉換的檢查清單,也會介紹 Markdown 匯入等新功能。
沒有留言:
張貼留言