VBA_配列に値を格納する方法

この記事を読むのに必要な時間は約 6 分です。

 

VBAで配列を使うことってありますよね。

 

単純に値を格納する方法以外に、ある関数を使って入れることができます。

 

複数の値を一度に格納出来て便利なので、もしも知らない場合はぜひ参考にしてみてくださいね。

スポンサーリンク

VBAで、配列に直接値を格納する

配列に直接値を入れるなら、

配列(1) = "値"

のように書きます。

 

サンプルプログラムはこんな感じ。
直接格納するので、あえて次のように書いていますが、For文などでループさせて値を入れることが多いです。

Public Sub testArray1()
    
    Dim sArray(2) As String
    
    sArray(0) = "ああ"
    sArray(1) = "いい"
    sArray(2) = "うう"
     
    Sheet1.Cells(1, 1) = sArray(0)
    Sheet1.Cells(2, 1) = sArray(1)
    Sheet1.Cells(3, 1) = sArray(2)
    
End Sub

 

実行すると、下図のように配列に格納されている値がセルに入りました。

VBA_配列に値を格納する方法

VBAで、Arrayを使って配列に値を格納する

Arrayを使うと、1度でまとめて格納できます。

 

ここで注意したいのは、Variant型で宣言すること。
格納する中身の値はString型ですが、As String としてしまうと「型が一致しません。」のエラーになります。

 

なのでVariant型で宣言する必要があります。

Public Sub testArray2()
    
    Dim vArray() As Variant
    
    vArray() = Array("かかか", "ききき", "くくく", "けけけ")
     
    Sheet1.Cells(11, 1) = vArray(0)
    Sheet1.Cells(12, 1) = vArray(1)
    Sheet1.Cells(13, 1) = vArray(2)
    Sheet1.Cells(14, 1) = vArray(3)
    
End Sub

 

実行してみると、配列に格納された値が次のようにセルに入ります。

VBA_配列に値を格納する方法

VBAで、Split関数を使って値を格納する

Split関数を使って配列に値を格納する方法です。

 

とても便利なので、ぜひ知っておいてほしいやり方の1つです。

 

カンマ区切りのデータであるCSV、タブ区切りのデータであるTSVなど、いろんなデータがありますよね。

 

1行ずつ読み取って処理するとき、Split関数で区切り文字を指定してVariant型の変数に入れると、サクッと配列に格納することができるんです!

 

Public Sub testArray3()
    
    Dim vArray As Variant
    Dim sCSVstring As String
    
    sCSVstring = "ささささ,しししし,すすすす,せせせせ,そそそそ"
    
    vArray = Split(sCSVstring, ",")
     
    Sheet1.Cells(21, 1) = vArray(0)
    Sheet1.Cells(22, 1) = vArray(1)
    Sheet1.Cells(23, 1) = vArray(2)
    Sheet1.Cells(24, 1) = vArray(3)
    Sheet1.Cells(25, 1) = vArray(4)
    
End Sub

 

実行すると、下図のように配列の値がセルに格納されます。

VBA_配列に値を格納する方法

スポンサーリンク

まとめ:VBAで配列に値を格納する方法3つ

VBAで配列に値を格納する方法を紹介してきました。

 

単純に値を格納する以外に、Array関数、Split関数を使う方法もあると知ってほしかったわけです。

 

CSVやTSVのデータを配列に入れるなら、Split関数は非常に便利で、初めて知った時は感動しました(笑)

 

配列の使い方、参考になればと思います。

 

最後までお読みいただき、ありがとうございました。