MENU

【VBA】効率的なコーディングのための配列の使い方【Array】

エクセルマクロ(VBA)で配列を使用すると、複数のデータを一度に扱うことができ、コードの効率性が向上します。この記事では、VBAで配列を使う方法について解説します。基本的な使い方から応用的な例までを網羅し、配列の利便性を最大限に活用する方法を紹介します。

配列の基本

配列とは、一つの変数名に対して複数の値を格納するためのデータ構造です。VBAでは、一次元配列や多次元配列を使用することができます。

配列の宣言

配列を使用する前に、まずその配列を宣言します。次の例は、要素数5の一次元配列を宣言する方法です。

Dim arr(5) As Long

この宣言では、arr(0) から arr(5) までの6つの要素を持つ配列が作成されます。

配列に値を代入する

次に、配列に値を代入する方法を示します。

arr(0) = 10
arr(1) = 20
arr(2) = 30
arr(3) = 40
arr(4) = 50
arr(5) = 60

配列の値を取得する

配列の値を取得するには、次のようにします。

Dim value As Long
value = arr(2)  ' valueに30が代入される

動的配列

固定サイズの配列ではなく、サイズを動的に変更できる配列を使用することもできます。これを動的配列と呼びます。

動的配列の宣言

動的配列は、最初にサイズを指定せずに宣言します。

Dim arr() As Long

動的配列のサイズを変更する

動的配列のサイズを変更するには、ReDim ステートメントを使用します。

ReDim arr(5)

また、既存のデータを保持したままサイズを変更するには、ReDim Preserve を使用します。

ReDim Preserve arr(10)

多次元配列

VBAでは、二次元や三次元などの多次元配列を使用することもできます。

二次元配列の宣言

次の例は、3行2列の二次元配列を宣言する方法です。

Dim arr(2, 1) As Long

二次元配列に値を代入する

二次元配列に値を代入する方法を示します。

arr(0, 0) = 10
arr(0, 1) = 20
arr(1, 0) = 30
arr(1, 1) = 40
arr(2, 0) = 50
arr(2, 1) = 60

配列を使った例

以下に、配列を使った具体的な例をいくつか示します。

例1: 配列を使って平均値を計算する

次の例では、配列内の数値の平均を計算します。

Sub CalculateAverage()
    Dim arr(5) As Long
    Dim total As Long
    Dim i As Long
    Dim average As Double
    
    ' 配列に値を代入
    arr(0) = 10
    arr(1) = 20
    arr(2) = 30
    arr(3) = 40
    arr(4) = 50
    arr(5) = 60
    
    ' 配列の値を合計
    total = 0
    For i = 0 To 5
        total = total + arr(i)
    Next i
    
    ' 平均値を計算
    average = total / 6
    
    MsgBox "平均値は " & average & " です。"
End Sub

例2: 配列を使って範囲内のデータを取得する

次の例では、ワークシートの範囲内のデータを配列に取得し、配列内のデータを処理します。

Sub RangeToArray()
    Dim ws As Worksheet
    Dim dataRange As Range
    Dim dataArray() As Variant
    Dim i As Long, j As Long
    
    ' ワークシートと範囲を設定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set dataRange = ws.Range("A1:D10")
    
    ' 範囲のデータを配列に取得
    dataArray = dataRange.Value
    
    ' 配列内のデータを処理(ここでは表示)
    For i = 1 To UBound(dataArray, 1)
        For j = 1 To UBound(dataArray, 2)
            Debug.Print dataArray(i, j)
        Next j
    Next i
End Sub

まとめ

VBAマクロで配列を使用する方法について解説しました。配列を使用することで、データの管理や操作が効率的に行えるようになります。この記事を参考にして、あなたのエクセル作業をより効率的に進めてください。

エクセルマクロに関する他の質問やリクエストがあれば、コメントで教えてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

自動車メーカーで、VBAやRPAを用いた業務効率化・業務改善を行っております。

目次