很多人第一次聽到 VBA,會以為那是工程師才需要碰的東西。但如果你的工作常常離不開 Excel,例如每週整理銷售表、每月彙整費用、把資料複製貼上再套格式,那 VBA 其實很可能是最務實的省時工具。
它不一定要寫得很複雜。真正有用的 VBA,常常只是把你每天重複十幾次的操作,改成按一次按鈕完成。
VBA 適合解決什麼問題?
我會把 VBA 想成 Excel 裡的「自動化助理」。只要一件事符合下面幾個特徵,就很適合交給 VBA:
- 操作流程固定
- 每次資料格式差不多
- 常常需要複製、貼上、排序、篩選、套格式
- 出錯通常是因為人工操作太疲勞
- 做一次不難,但每週都做很煩
例如:主管每週要看各業務的銷售金額,你每次都要把資料表排序、刪掉空白列、調整欄寬、加上篩選,再把標題列上色。這些動作手做不難,但累積起來就是時間。
一個簡單但實用的 VBA 範例
下面這段程式可以把目前工作表整理成比較好閱讀的報表格式:自動凍結標題列、套用篩選、調整欄寬,並把第一列變成醒目的標題列。
Sub FormatReport()
Dim ws As Worksheet
Set ws = ActiveSheet
With ws
.Rows(1).Font.Bold = True
.Rows(1).Interior.Color = RGB(220, 230, 241)
.Rows(1).AutoFilter
.Columns.AutoFit
End With
ws.Activate
ws.Range("A2").Select
ActiveWindow.FreezePanes = True
MsgBox "報表格式已整理完成!", vbInformation
End Sub
如果你以前沒有用過 VBA,可以這樣試:
- 在 Excel 按
Alt + F11開啟 VBA 編輯器。 - 點選「插入」→「模組」。
- 貼上上面的程式碼。
- 回到 Excel,按
Alt + F8,選擇FormatReport執行。
執行完後,你會看到報表已經變得更容易閱讀。這就是 VBA 最迷人的地方:它不需要先做一個完整系統,也能立刻改善日常工作。
寫 VBA 前,先把流程想清楚
很多人學 VBA 會卡住,不是因為語法太難,而是因為一開始就想寫太大的功能。比較好的做法是先把工作拆小:
- 第一步:資料在哪裡?
- 第二步:要刪掉或保留哪些資料?
- 第三步:要怎麼排序或分組?
- 第四步:最後要輸出成什麼樣子?
只要你能用白話把流程寫出來,VBA 就比較容易跟上。不要一開始就追求漂亮的程式碼,先讓它幫你省下第一個 10 分鐘,比什麼都重要。
初學 VBA 最值得養成的習慣
第一,先備份檔案。VBA 可以快速修改大量資料,這是優點,也是風險。
第二,從「錄製巨集」開始觀察。錄製巨集產生的程式碼通常不完美,但很適合拿來學 Excel 每個操作背後對應的 VBA 寫法。
第三,先自動化最煩的小事。不要急著做一套巨大工具,先讓自己少做一次重複貼上、少調一次格式、少漏刪一列資料。這些小節省會慢慢累積成很可觀的效率。
結語
VBA 的價值不在於炫技,而在於讓 Excel 從「需要你一直盯著做」變成「你設定好規則,它幫你完成」。對每天都要處理表格的人來說,這種改變非常實際。
如果你正在學 VBA,可以從今天最常重複的 Excel 動作開始。把它記下來,拆成步驟,再試著用一小段巨集完成。你不需要一開始就成為程式高手,只要先讓自己少做一點重複工作,就已經很值得了。



















