在 VBA(Visual Basic for Applications)中,陣列(Array) 是一種能儲存多筆資料的變數型別,可以用來管理多個相關項目,比一個一個變數處理來得有效率。
什麼是陣列?
簡單來說,陣列就是一串有順序的資料集合。你可以把它想像成一排抽屜,每個抽屜裡存放一筆資料,而每個抽屜都有一個編號(索引)。
陣列語法格式
Dim 陣列名稱(起始索引 To 結束索引) As 資料型別
例如:
Dim scores(0 To 4) As Integer
這行表示建立一個可儲存 5 筆整數的陣列,索引從 0 到 4。
我們可以這樣存取或指定數值:
scores(0) = 85
scores(1) = 90
scores(2) = 78
scores(3) = 92
scores(4) = 88
一維陣列範例:使用Array函數
在 VBA 中,也可以用 Array
函數快速建立一個變動型別的陣列,不需事先指定資料型別或大小:
Dim colors As Variant
colors = Array(“紅”, “綠”, “藍”)
這是一個包含三個元素的陣列,索引從 0 開始。
陣列元素內容對應表
陣列索引 | 內容 |
---|---|
colors(0) | “紅” |
colors(1) | “綠” |
colors(2) | “藍” |
陣列搭配迴圈的應用範例
以下是一個實用的 VBA 範例:在 Excel 的第一列自動輸入標題欄。

傳統方式(逐欄指定)
最直接的方式,就是一欄一欄手動指定儲存格:
Sub 建立標題()
Range("A1") = "項次"
Range("B1") = "日期"
Range("C1") = "時間"
Range("D1") = "異常代碼"
Range("E1") = "異常項目"
End Sub
雖然這種寫法簡單直覺,但當標題變多、或需要重複這段程式碼時,維護上會變得麻煩又冗長。

改用陣列 + 迴圈方式(更有效率)
使用陣列搭配 For
迴圈,可以簡化程式碼,提高可讀性與維護性:
Sub 建立標題()
headers = Array("項次", "日期", "時間", "異常代碼", "異常項目")
For i = 0 To UBound(headers)
Cells(1, i + 1).Value = headers(i)
Next i
End Sub

執行巨集後則在 Excel 的第一列自動輸入標題欄。
