一時シートの追加を中で使ってるので、そっちとセットでよく使うやつ。
TextFileColumnDataTypesのとこだけ注意。
全て文字列で取り込むなら、カラム数分、配列を書いてあげること。
なお、ながぁーい配列を渡してもOKなので、
2ばっかのでかい配列を渡しておくといいかも。
'CSV読み込み
Public Function OPEN_CSV_FILE(titleText As String) As Worksheet
Dim varFileName As Variant
Dim csvSheet As Worksheet
'CSVファイルを選択
varFileName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", _
Title:=titleText & "CSVファイルの選択")
If varFileName = False Then
'キャンセル
OPEN_CSV_FILE = Nothing
Exit Function
End If
'同名のシートがある場合は事前に削除する
For Each ws In Worksheets
If (ws.Name = titleText) Then
'同名のシートがあった場合、削除する。
ws.Delete
End If
Next ws
'一時シートを作成
Set csvSheet = ADD_TEMP_SHEET()
csvSheet.Name = titleText
With csvSheet.QueryTables.Add(Connection:="text;" & varFileName, Destination:=csvSheet.Range("A1"))
.TextFilePlatform = 932 'Shift=Jis
.TextFileCommaDelimiter = True
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2)
.Refresh BackgroundQuery:=False
.Delete
End With
Set OPEN_CSV_FILE = csvSheet
End Function