エクセルマクロ(VBA)で配列を使用すると、複数のデータを一度に扱うことができ、コードの効率性が向上します。この記事では、VBAで配列を使う方法について解説します。基本的な使い方から応用的な例までを網羅し、配列の利便性を最大限に活用する方法を紹介します。
目次
配列とは?VBAで使う理由
VBAで大量のデータを扱うとき、ひとつずつ変数を用意するのは非効率です。
配列は、同じ種類のデータをまとめて管理できる箱のような存在。
処理を高速化し、コードをスマートにするために、配列は欠かせないテクニックです。
VBA配列の基本|一次元配列の宣言と代入
配列の宣言方法
配列を使うには、まずサイズを指定して宣言します。
Dim fruits(2) As String
この例では、fruits(0)
, fruits(1)
, fruits(2)
の3つの要素が作られます。
注意
VBAでは配列の最小インデックスは通常0です。(Option Base 1指定しない限り)
配列への値の代入と取得
値の代入と取得は下記コードのように、インデックス(配列の括弧内の数値)を指定することでできます。
fruits(0) = "Apple"
fruits(1) = "Banana"
fruits(2) = "Cherry"
Debug.Print fruits(1) ' 結果:Banana
動的配列の使い方|要素数を柔軟に変更する
動的配列は、データ数に応じて後からサイズを決めることができます。
ReDim・ReDim Preserveの使い方
動的配列は、最初にサイズを指定せずに宣言します。
Dim numbers() As Integer ' 配列の宣言をする
ReDim numbers(5) ' 配列宣言後に要素数6個に指定する
さらに、既存データを保持したままサイズ変更したい場合は、Preserve
を使います。
ReDim Preserve numbers(10) ' 要素数11個に変更する
注意
Preserveを使う場合は、最終次元だけ変更可能です。(多次元配列には制限あり)
動的配列使用時の注意点
- 初期化するときに元データが消える場合がある
- サイズを頻繁に変更するとパフォーマンスに影響する
多次元配列とは?|二次元配列の例と使い方
複数のデータセットを管理したいときは多次元配列が便利です。
Dim scores(2, 3) As Integer
これは「3行×4列」のデータ表のようなイメージです。
scores(0, 0) = 80 ' 1行1列目
scores(1, 2) = 90 ' 2行3列目
Excelシートのように行と列で管理したい場合、非常に相性が良いです!
配列を活用した実務例【オリジナルTips】
売上データから月別平均を出すサンプル
例えば、1月〜12月の売上データがあるとします。
これを配列に格納して、月平均を計算するコード例です。

Sub calculateSalesAverage()
Dim sales(11) As Long
Dim i As Long
Dim total As Long
' 売上データを仮入力
For i = 0 To 11
sales(i) = Cells(i + 2, 2).Value
Next i
' 合計計算
For i = 0 To 11
total = total + sales(i)
Next i
MsgBox "平均売上は " & total / 12 & " です"
End Sub
このように、配列を使えば一括処理が簡単になります!
まとめ|配列を理解してコードを効率化しよう
配列をうまく使えば、
- コードのシンプル化
- 処理スピードの向上
- 保守性の向上
が期待できます。まずは一次元配列から始め、動的配列・多次元配列へとステップアップしてみましょう!