Excel VBA 既存の2次元配列のデータを初期化して新にデータ格納する方法

 

Excel VBAで2次元配列を初期化する具体的な使い方や、注意点やサンプルコードを紹介します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA 2次元配列の初期化

以下のようなシーンで利用されます。

・既存の2次元配列のデータをクリアして新しいデータを格納する場合

・関数やサブルーチン内で動的に生成された2次元配列に初期値を設定する場合

 

ポイント

ReDimを使用して新しいサイズの配列を作成するため、既存のデータは失われます。

 

Excel VBA 2次元配列の初期化サンプルコード

Option Explicit

Sub InitializeArray()
    Dim myArray() As Variant
    Dim numRows As Integer, numCols As Integer
    Dim i As Integer, j As Integer
    
    ' 行数と列数を指定
    numRows = 3
    numCols = 4
    
    ' 配列定義
    ReDim myArray(1 To numRows, 1 To numCols)
    
    ' 配列に値を格納
    For i = 1 To numRows
        For j = 1 To numCols
            myArray(i, j) = i * 10 + j
        Next j
    Next i
    
    ' データの表示
    For i = 1 To numRows
        For j = 1 To numCols
            Debug.Print myArray(i, j)
        Next j
    Next i

    ' 配列再定義
    ReDim myArray(1 To numRows, 1 To numCols)
    
    ' データの表示
    For i = 1 To numRows
        For j = 1 To numCols
            Debug.Print myArray(i, j)
        Next j
    Next i
End Sub

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

サンプルコードは、myArrayに値を格納してDebug.Printで表示。その後、2二元配列をReDimを使って初期化して、2次元配列の内容が初期化されているかDebug.Printで表示しています。

 

    For i = 1 To numRows
        For j = 1 To numCols
            myArray(i, j) = 0
        Next j
    Next i

このサンプルコードは、For文で2次元配列を初期化しています。

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問