Excelで外部データ(CSV)取り込みを自動化します。
ActiveXコントロールのボタンを貼り付けたら以下のソースに書き換えます。
ヘッダー行はシート2行目に事前に用意しておきます。
3行目以降にCSVの内容が取り込まれます。
カラムはすべて文字列型、カラム数はCSVに合わせて適宜修正してください。
Private Sub CommandButton1_Click()
'定数
Const columnNum As Integer = 10 'カラム数
Dim loopIndex As Integer
Dim ColumnDataTypeArray() As Variant
'すべての列を文字列で取り込む
ReDim ColumnDataTypeArray(columnNum - 1)
For loopIndex = 0 To columnNum - 1
ColumnDataTypeArray(loopIndex) = 2
Next
'ファイル取得
Dim filename As String
filename = Application.GetOpenFilename("CSVファイル,*.csv;*.txt")
If filename = "False" Then Exit Sub
'シートへ挿入
Dim qt As QueryTable
Set qt = ActiveSheet.QueryTables.Add(Connection:="TEXT;" & filename, Destination:=Range("$A$3"))
With qt
.AdjustColumnWidth = True
.RefreshStyle = xlOverwriteCells
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileCommaDelimiter = True
.TextFileColumnDataTypes = ColumnDataTypeArray
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
'新たな名前の定義
Range(qt.Name).Name = "CSV取込"
'テータ接続の削除
qt.Delete
End Sub