🚀 從零開始 - 5 分鐘學會 VBA 寫程式

上一篇「不用寫程式,讓 Excel 自動拆好報表!」的文章得到了很熱烈的迴響,
很多讀者都成功用錄製巨集的方式解決了報表分割的問題!

不過也有部分讀者反應巨集錄製完成後無法正常執行,
主要是因為錄製巨集會把所有操作細節,
像是點選特定工作表、調整欄寬位置等,
都會完整記錄下來。

所以只要有一點變動,比如工作表名稱不同,巨集就可能出錯。

雖然可以透過改善錄製技巧來減少問題,
但錄製巨集還是有根本上的限制,
無法應付部門名稱變動、資料筆數不固定等狀況。

在學怎麼用 VBA 來自動拆分部門報表之前,
今天我們先從 VBA 基礎開始,讓你先感受一下 VBA 的威力。

就算你從來沒有寫過程式,
也可以在 5 分鐘內成功執行你的第一個 VBA 程式!

練習一:寫出你的第一個 VBA 程式!

  1. 開啟 VBA 編輯器:到左下角工作表名稱點滑鼠右鍵,點「檢視程式碼」

  1. 複製這段程式碼,貼到右邊空白

Sub 我的第一個程式()
    MsgBox "Excel 百科教我成功執行第一個 VBA 程式!"
End Sub
  1. 執行程式:點一下上面綠色  ▶︎ 的執行按鈕

有看到彈跳視窗了嗎?

是不是很酷!
恭喜你已經學會寫第一個 VBA 程式了!

📖 簡單說明:

  • SubEnd Sub:程式的開始和結束

  • 我的第一個程式():程式的名稱(可以自己取名)

  • MsgBox:顯示彈跳視窗的指令

練習二:自動填入資料

現在我們來讓 VBA 幫我們填入一些資料:

  1. 在剛才程式碼的底下複製貼上這段程式碼

Sub 自動填入資料()
    Range("A1").Value = "員工姓名"
    Range("B1").Value = "部門"
    Range("C1").Value = "薪資"
    Range("A2").Value = “Excel 百科"
    Range("B2").Value = "業務部"
    Range("C2").Value = 45000
    MsgBox "資料填入完成!"
End Sub
  1. 執行程式:和剛才一樣,點一下上面綠色  ▶︎ 的執行按鈕

除了跳出一個完成提示之外,
你還會發現 Excel 自動幫我們填好表格了!

📖 簡單說明:

  • Range("A1"):指定 A1 儲存格

  • .Value:設定儲存格的內容

練習三:簡單的格式美化

接著我們來美化一下剛才的資料,
在剛才程式碼的底下複製貼上這段程式碼

Sub 美化標題列()
    Range("A1:C1").Font.Bold = True
    Range("A1:C1").Font.Color = vbWhite
    Range("A1:C1").HorizontalAlignment = xlCenter
    Range("A1:C1").Interior.Color = RGB(0, 130, 0)
    Columns("A:C").AutoFit
    MsgBox "格式美化完成!"
End Sub

接著執行這段程式,你會發現表格一秒就美化完成!

  • 標題列變成粗體

  • 文字變成白色,同時置中對齊

  • 背景變成綠色

  • 自動調整欄寬

📖 簡單說明:

  • Range("A1:C1").Font.Bold:設定 A1 到 C1 字體成粗體

  • .Font.Color = vbWhite:設定文字為白色

  • .HorizontalAlignment = xlCenter:設定文字水平置中對齊

  • .Interior.Color = RGB(0, 130, 0):設定綠色背景

  • Columns("A:C").AutoFit:自動調整 A 到 C 欄的欄寬

🔜 下集預告

學會了這些基礎後,下一篇我們就要來解決實際的工作問題: 用 VBA 程式碼自動拆分部門報表

部門拆分的程式會比今天的練習稍微複雜,但其實只要多掌握 2 個新觀念:

  • 迴圈:讓程式能自動重複執行

  • 判斷:分辨資料屬於哪個部門

今天你學到的 Range、Value、格式設定等等技巧,也都還會用的到!

📊 小調查:你最希望 Excel 自動化哪個工作?

學會了 VBA 的基礎後,是不是開始想像可以自動化更多工作?

我們也想知道你在工作中最希望自動化哪個部分,這樣就可以優先製作最實用的教學內容!

請花 30 秒幫我們填寫這個小問卷: 👉 [Excel 自動化需求調查]

你的分享可能會成為下一篇教學文章的主題, 也能幫助其他有相同困擾的朋友!

好句分享

「只要你能想像的,就能實現;只要你敢夢想,就能做到。」- 威廉・亞瑟・沃德

“If you can imagine it, you can achieve it. If you can dream it, you can become it.” - William Arthur Ward

祝你有個美好的一週!

Excel 百科

你覺得今天的電子報怎麼樣?

Login or Subscribe to participate in polls.