マクロ講座Join関数でつなげる

Join関数でつなげる
Join関数でつなげる

マクロ 83回

配列の値をJoin関数でまとめる

Join関数は、 引数sourcearrayに指定した1次元配列の値を結合した値を返します。
値の区切り文字を指定することも可能です。区切り文字を省略するとスペースで区切られます。
また区切り文字がいらない場合は「””」を使うことができます。
Join関数でつなげる1


(サンプルファイルは、こちらから マクロ83回サンプルデータ

シート上のデータをJoin関数でまとめて表示する

1. シートにデータが入力されています。データは14個あります。このデータを繋げます。
区切りは半角スペースにしたいので、省略することができます。


Join関数でつなげる1

2. まず、1次元配列を宣言します。データ数は14とわかっているので、0から始まることを考慮して13とします。 Dim とある配列(13) As String
そのとある配列には、For文をつかって、0から13までデータをいれていきます。
最後に、Join関数でつなげます。MsgBox Join(とある配列)

Sub matomeru()
    Dim とある配列(13) As String
    Dim i As Long
    For i = 0 To 13
        とある配列(i) = Cells(i + 2, 1).Value
    Next
    MsgBox Join(とある配列)
End Sub

Join関数でつなげる2

3. もし、データの数がわからなければ、最終行を取得してください。LastRowは最終行の行番号ですから、-1をすれば、データの数となります。

Sub 最終行を取得1()
    'データに空白がないとき
    Dim LastRow As Long
    LastRow = Range("A1").End(xlDown).Row
    MsgBox "最終行は" & LastRow & "行目です。"
End Sub

Join関数でつなげる3

4.見出し行分を -1 することで、データ数は取得できますが、配列が0からはじまるので、さらに-1して、 ReDimステートメントを利用して定義しなおします。
ReDim とある配列(LastRow - 2)

Sub matomeru2()
    Dim とある配列() As String
    Dim LastRow As Long
    LastRow = Range("A1").End(xlDown).Row
    ReDim とある配列(LastRow - 2)
    Dim i As Long
    For i = 0 To UBound(とある配列)
        とある配列(i) = Cells(i + 2, 1).Value
    Next
    MsgBox Join(とある配列)
End Sub


Join関数でつなげる4