VBA陣列教學:基礎觀念+實作範例

在 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 的第一列自動輸入標題欄。

其他VBA教學

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *