JOIN処理(配列を文字列に結合)
Excel VBAで「配列の要素をまとめて一つの文字列にしたい」ときに便利なのが Join 関数 です。初心者でも理解しやすいように、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- 構文:
Join(配列, 区切り文字) - 動作:
- 一次元配列の要素を文字列として結合。
- 区切り文字を指定できる(カンマ、スペース、改行など)。
- 用途:
- CSV形式の文字列作成。
- ログ出力。
- 配列を一気に文字列化して確認。
テンプレ1:配列をカンマ区切りで結合
Sub Join_Comma()
Dim fruits As Variant
fruits = Array("りんご", "みかん", "バナナ")
Dim result As String
result = Join(fruits, ", ")
MsgBox result ' → "りんご, みかん, バナナ"
End Sub
VB- ポイント: 配列を一気に文字列化できる。
テンプレ2:スペース区切りで結合
Sub Join_Space()
Dim words As Variant
words = Array("Excel", "VBA", "Join")
Dim result As String
result = Join(words, " ")
MsgBox result ' → "Excel VBA Join"
End Sub
VB- ポイント: 区切り文字を
" "にすると文章風に結合できる。
テンプレ3:改行で結合(ログ出力に便利)
Sub Join_NewLine()
Dim lines As Variant
lines = Array("処理開始", "データ読み込み", "処理完了")
Dim result As String
result = Join(lines, vbCrLf)
MsgBox result
End Sub
VB- 結果:
処理開始 データ読み込み 処理完了
テンプレ4:シートの列を配列化して結合
Sub Join_FromSheet()
Dim ws As Worksheet: Set ws = Worksheets("Data")
Dim lastRow As Long: lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Dim v As Variant: v = ws.Range("A2:A" & lastRow).Value
' 二次元配列を一次元に変換
Dim arr() As String
Dim i As Long
ReDim arr(1 To UBound(v, 1))
For i = 1 To UBound(v, 1)
arr(i) = v(i, 1)
Next i
Dim result As String
result = Join(arr, ", ")
MsgBox result
End Sub
VB- ポイント: Rangeを読み込むと二次元配列になるので一次元に変換してから
Join。
テンプレ5:JOINでCSV形式を作成
Sub Join_ToCSV()
Dim ws As Worksheet: Set ws = Worksheets("Data")
Dim rg As Range: Set rg = ws.Range("A2:C5")
Dim v As Variant: v = rg.Value
Dim r As Long, c As Long, line As String, result As String
For r = 1 To UBound(v, 1)
Dim arr() As String
ReDim arr(1 To UBound(v, 2))
For c = 1 To UBound(v, 2)
arr(c) = v(r, c)
Next c
line = Join(arr, ",")
result = result & line & vbCrLf
Next r
MsgBox result
End Sub
VB- ポイント: 各行を配列化して
Join→ CSV形式の文字列を作れる。
例題で練習
'例1:配列をカンマ区切りで結合
Sub Example1()
Join_Comma
End Sub
'例2:スペース区切りで結合
Sub Example2()
Join_Space
End Sub
'例3:改行で結合
Sub Example3()
Join_NewLine
End Sub
'例4:シートの列を結合
Sub Example4()
Join_FromSheet
End Sub
'例5:CSV形式を作成
Sub Example5()
Join_ToCSV
End Sub
VB初心者向けポイント
- Joinは一次元配列専用 → 二次元配列は変換が必要。
- 区切り文字を工夫 →
", "や" "やvbCrLfなど。 - CSV作成に便利 → 行ごとに配列化して
Join。 - ログ出力にも最適 → 改行で結合すれば処理履歴をまとめられる。
👉 この「JOIN処理テンプレ」を覚えておけば、配列を 一気に文字列化・CSV化・ログ化 できるので、実務でのデータ処理がぐっと楽になります。
