MENU

【VBA】配列の基本操作まとめ|動的配列・多次元配列もこれで安心!

エクセルマクロ(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

このように、配列を使えば一括処理が簡単になります!

まとめ|配列を理解してコードを効率化しよう

配列をうまく使えば、

  • コードのシンプル化
  • 処理スピードの向上
  • 保守性の向上

が期待できます。まずは一次元配列から始め、動的配列・多次元配列へとステップアップしてみましょう!

この記事を書いた人

めんどくさがりでズボラ。
某自動車メーカーで、VBAやRPAを用いた業務効率化を行っております。

目次