概要

Join関数は、Excel VBAで配列内の要素を指定した区切り文字で結合し、一つの文字列に変換するための関数です。この関数を利用することで、配列の内容を簡単に文字列として扱うことができ、データの表示やログの出力などに役立ちます。

構文

Join(配列, [区切り文字])

パラメータ

  • 配列
    結合する配列を指定します。配列の要素は文字列型である必要があります。

  • 区切り文字 (オプション)
    配列の要素を結合する際に使用する区切り文字を指定します。省略した場合、区切り文字は空の文字列("")になります。

戻り値

Join関数は、配列の各要素を指定された区切り文字で結合した一つの文字列を返します。

説明

Join関数を使用すると、配列内の複数の要素を簡単に一つの文字列に変換できます。たとえば、カンマ区切りのリストやスペース区切りの文章を生成するのに便利です。

  • 区切り文字の指定
    区切り文字は任意の文字列を指定できます。最も一般的にはカンマやスペースが使用されますが、改行文字や他の記号を使用することも可能です。

  • 空の配列への対応
    空の配列をJoin関数に渡した場合、結果は空の文字列が返されます。

使用例

基本的な使用例 - カンマ区切りの文字列を作成する

Sub SampleJoin()
    Dim fruits() As String
    Dim result As String

    fruits = Array("Apple", "Banana", "Cherry")

    ' 配列をカンマで結合
    result = Join(fruits, ", ")

    MsgBox result  ' 結果: Apple, Banana, Cherry
End Sub

区切り文字をスペースにする

Sub JoinWithSpace()
    Dim words() As String
    Dim sentence As String

    words = Array("Hello", "world", "VBA", "is", "fun")

    ' 配列をスペースで結合
    sentence = Join(words, " ")

    MsgBox sentence  ' 結果: Hello world VBA is fun
End Sub

区切り文字を改行にする

Sub JoinWithNewLine()
    Dim lines() As String
    Dim paragraph As String

    lines = Array("Line 1", "Line 2", "Line 3")

    ' 改行で配列を結合
    paragraph = Join(lines, vbCrLf)

    MsgBox paragraph
    ' 結果:
    ' Line 1
    ' Line 2
    ' Line 3
End Sub

応用例

配列を結合してCSV形式の行を作成する

Join関数は、CSV(Comma-Separated Values)形式のデータを作成する際にも便利です。

Sub CreateCSVLine()
    Dim data() As String
    Dim csvLine As String

    data = Array("John", "Doe", "30", "Engineer")

    ' 配列をカンマで結合してCSV行を作成
    csvLine = Join(data, ",")

    Debug.Print csvLine  ' 結果: John,Doe,30,Engineer
End Sub

数値型の配列を文字列に変換して結合

数値型の配列を文字列に変換してから結合する例です。

Sub JoinNumbers()
    Dim numbers() As Variant
    Dim i As Integer
    Dim strNumbers() As String
    Dim result As String

    numbers = Array(1, 2, 3, 4, 5)

    ' 数値型の配列を文字列型に変換
    ReDim strNumbers(LBound(numbers) To UBound(numbers))
    For i = LBound(numbers) To UBound(numbers)
        strNumbers(i) = CStr(numbers(i))
    Next i

    ' 配列を結合
    result = Join(strNumbers, "-")

    MsgBox result  ' 結果: 1-2-3-4-5
End Sub

備考

  • Join関数は、配列の要素が文字列型でない場合、要素を文字列型に変換する必要があります。

  • 空の区切り文字を指定した場合、配列の要素は直接結合され、間に何も挟まりません。

  • 配列の各要素の間に繰り返し使用されるため、区切り文字を適切に設定することで見やすい文字列を生成できます。