マクロ講座Join関数でつなげる
マクロ 83回
配列の値をJoin関数でまとめる
Join関数は、 引数sourcearrayに指定した1次元配列の値を結合した値を返します。
値の区切り文字を指定することも可能です。区切り文字を省略するとスペースで区切られます。
また区切り文字がいらない場合は「””」を使うことができます。
(サンプルファイルは、こちらから マクロ83回サンプルデータ)
シート上のデータをJoin関数でまとめて表示する
1. シートにデータが入力されています。データは14個あります。このデータを繋げます。
区切りは半角スペースにしたいので、省略することができます。
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
3. もし、データの数がわからなければ、最終行を取得してください。LastRowは最終行の行番号ですから、-1をすれば、データの数となります。
Sub 最終行を取得1() 'データに空白がないとき Dim LastRow As Long LastRow = Range("A1").End(xlDown).Row MsgBox "最終行は" & LastRow & "行目です。" End Sub
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