No.1さんが示してくれた参考ページの「■複数のファイルを選択可能にする」を見ればやりかたは分かるかと思います。
Sub putCsv()
Dim csvFile As Variant
Dim fIdx As Integer
Dim dCell As String
csvFile = Application.GetOpenFilename(FileFilter:="CSVファイル,*.csv", MultiSelect:=True)
If Range("A65536").End(xlUp).Row = 1 Then
dCell = "A1"
Else
dCell = "A" & CStr(Range("A65536").End(xlUp).Row + 1)
End If
For fIdx = 1 To UBound(csvFile)
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & csvFile(fIdx), Destination:=Range(dCell))
.TextFileCommaDelimiter = True
.Refresh BackgroundQuery:=False
End With
dCell = "A" & CStr(Range("A65536").End(xlUp).Row + 1)
Next
End Sub
これで、ほぼ完成形かと思いますが、いかがでしょう。
> ダイアログボックスで複数のCSVファイルを選択して、
の部分についてはNo1.さんのご回答がありますので、
> 1つのシートに上から順番につめて取り込みが出来るマクロは作れるでしょうか?
の部分の回答例を作ってみました。
Sub getCsv()
Dim csvFile(2)
Dim fIdx As Integer
Dim dCell As String
csvFile(0) = "c:\a.csv"
csvFile(1) = "c:\b.csv"
csvFile(2) = "c:\c.csv"
dCell = "A1"
For fIdx = 0 To 2
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & csvFile(fIdx), Destination:=Range(dCell))
.TextFileCommaDelimiter = True
.Refresh BackgroundQuery:=False
End With
dCell = "A" & CStr(Range("A65536").End(xlUp).Row + 1)
Next
End Sub
ご参考になれば。
お礼
まとめてお礼を書かせていただきます。ありがとうございました。がんばってみます