【VBA】配列を一つの文字列に結合する

エクセルVBAで使うコードの備忘録。VBAで配列に格納された文字列を一つに結合するJOIN関数について。

スポンサーリンク

JOIN関数:配列を一つの文字列に結合

JOIN関数は配列(一次元)に格納されている値を一つの文字列に結合してくれます。引数として配列(必須)と区切文字(オプション)を与えます。

JOIN関数

[戻り値] = JOIN([配列], [区切り文字])

挙動はとてもシンプルで

["A", "B", "C", "D"]

という配列があれば、JOIN関数を使用すると

"A B C D"

という一つの文字列にしてくれます。一つの文字列を区切り文字で分割するSplit関数とちょうど逆の動きをしてくれます(Split関数についてはこちらを参照)。

ちなみにオプションの区切文字ですが、指定しなければ半角スペースで区切られます。区切り文字を何も使いたくない(配列のすべての要素をつなげたい)場合には空文字列(””)を与えてやればよいです。

サンプルコード

下記サンプルコードではtestArrayという配列を一つの文字列に結合しています。testArrayには「A, B, C, D」という文字列が1文字ずつ格納されています。今回の例では区切文字としてアンダーバー(_)を指定しているので、Join関数を使用した後の戻り値は「A_B_C_D」という文字列になります。

サンプルコード

Public Sub JoinTest()
    
    '--- 連結元となる配列 ---'
    Dim testArray(1 To 4) As String
    testArray(1) = "A"
    testArray(2) = "B"
    testArray(3) = "C"
    testArray(4) = "D"
    
    '--- 連結する際の区切文字(例はアンダーバー) ---'
    Dim delimStr As String
    delimStr = "_"
    
    '--- 連結後の配列(結果:A_B_C_D) ---'
    Dim strTmp As String
    strTmp = Join(testArray, delimStr)

    Dim i As Long
    i = 1
    
End Sub