VBA で配列の初期化を行うサンプルスクリプトを掲載しています。詳細はサンプル内のコメントを参照ください。
スポンサーリンク
配列の初期化 Dim
'---------------------------------------------- ' サイズ固定で配列を作成し、値を格納する '---------------------------------------------- Dim a1(3) As String a1(0) = "春" a1(1) = "夏" a1(2) = "秋" a1(3) = "冬" '---------------------------------------------- ' Split関数を利用して配列の初期化 '---------------------------------------------- Dim a2() As String ' サイズ不定の配列を準備 ' Split関数で作成した配列で上書き a2 = Split("春,夏,秋,冬", ",")
VBA では配列の初期化の場合に、配列のサイズ ( 要素数 ) を指定するのではなく、使用可能なインデックスを指定している点に注意しなければなりません。つまり、 Dim a(2) という配列の宣言は、インデックスが 0 ~ 2 の要素数 3 の配列を宣言していることになります。
Split 関数を使用した初期化方法は、スッキリした記述ができるだけというだけです。特に配列の初期化とは関係ありませんが、こんな方法でも初期化の代用となるという程度で覚えておけばよいでしょう。
配列のクリア(再初期化) ReDim
配列を再定義し、元の配列のデータはクリアするサンプルになります。
' 配列の初期化 Dim a1(3) As String a1(0) = "春" a1(1) = "夏" a1(2) = "秋" a1(3) = "冬" ' 配列のサイズを11に変更して、元のデータをクリアする ReDim a1(10)
配列のサイズ変更 ReDim Preserve
配列のサイズを変更するサンプルになります。配列のサイズのみが変更され、データはクリアされません。
' 配列の初期化 Dim a1(3) As String a1(0) = "春" a1(1) = "夏" a1(2) = "秋" a1(3) = "冬" ' 配列のサイズを11に変更する ' 元々格納していた、インデックス 0 ~ 3のデータはクリアされない ReDim Preserve a1(10)