エクセル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