マクロで最後の行を見つけて、値を連結する
最後の行を見つけ、その行までセルの値をループで1つずつ取得し、それらを連結する
Sub ConcatenateValues()
Dim lastRow As Long
Dim i As Long
Dim result As String
' 最後の行を取得
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
' セルの値を1つずつ取得して連結
For i = 1 To lastRow
result = result & Cells(i, 1).Value
Next i
' 結果をメッセージボックスに表示
MsgBox result
End Sub
Sub GetDataFromSheets()
Dim result() As String ' 結果を格納する配列
Dim sheetName As String ' シート名を格納する変数
Dim lastRow As Long ' 最後の行を格納する変数
Dim i As Long ' ループ用の変数
Dim j As Long ' ループ用の変数
Dim sqlFile As Integer ' SQLファイルの番号を格納する変数
Dim ws As Worksheet ' ワークシートを格納する変数
' 目次シートから最後の行を取得
lastRow = Sheets("目次").Cells(Rows.Count, "B").End(xlUp).Row
' ループで各シートのデータを取得
For i = 4 To lastRow
sheetName = Sheets("目次").Cells(i, "B").Value ' シート名を取得
If Sheets("目次").Cells(i, "C").Value = "○" Then ' 条件に合致する場合
' シートから最後の行を取得
Set ws = Sheets(sheetName)
lastRow = ws.Cells(Rows.Count, "B").End(xlUp).Row
' シートのデータを取得して配列に格納
For j = 4 To lastRow
result = Split(result & ws.Cells(j, "B").Value, ",") ' カンマ区切りで配列に格納
Next j
End If
Next i
' 結果をシートに貼り付け
For i = 0 To UBound(result)
Sheets("結果").Cells(i + 1, "A").Value = result(i)
Next i
' 結果をSQLファイルに書き込み
sqlFile = FreeFile
Open "C:\result.sql" For Output As sqlFile
For i = 0 To UBound(result)
Print #sqlFile, result(i)
Next i
Close sqlFile
End Sub