メモ帳で開いたりすれば元データが見られるんだけど、それではさすがに見にくい、エクセル上で手軽に確認・編集できればと思ってソースを書いてみました。
例によって多分内容は汚いけど、動くので問題ないと思います。
(新しくブックを追加してますが、それが嫌な人は「新規ブックを作成」の部分を削除してください)
Sub CSVをそのまま開く()Excel2007には対応していません。「For i = 1 To 256」の256を16384に変更すれば良いのかも知れないし、そんな単純ではないかも知れない。
Dim CSVのパス As String
Dim 読み込み用数列(1 To 256) As Integer
Dim i As Integer
Dim j As Integer
'---------------------------------------------------------
'CSVファイルを指定
CSVのパス = Application.GetOpenFilename( _
FileFilter:="CSVファイル,*.csv,すべてのファイル,*.*")
If CSVのパス = "False" Then
Exit Sub
End If
If LCase(Right(CSVのパス, 4)) <> ".csv" Then
Exit Sub
End If
'---------------------------------------------------------
'新規ブックを作成
Workbooks.Add (xlWBATWorksheet)
'---------------------------------------------------------
'読み込み用数列を生成
For i = 1 To 256
読み込み用数列(i) = 2
Next
'---------------------------------------------------------
'読み込み
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & CSVのパス, _
Destination:=Range("A1"))
.TextFileCommaDelimiter = True
.TextFileColumnDataTypes = 読み込み用数列
.Refresh
.Delete
End With
End Sub
(8/7修正:不要な部分を少し削りました)
Sub opencsvastext()
Dim csvpath As String
Dim textarray(1 To 256) As Integer
Dim i As Integer
Dim j As Integer
'---------------------------------------------------------
'新規ブックを作成
Workbooks.Add
'---------------------------------------------------------
'CSVファイルを指定
csvpath = Application.GetOpenFilename( _
FileFilter:="CSVファイル,*.csv,すべてのファイル,*.*")
If csvpath = "False" Then
Exit Sub
End If
If LCase(Right(csvpath, 4)) <> ".csv" Then
Exit Sub
End If
'---------------------------------------------------------
'不要なシートを削除
i = Sheets.Count
If i > 1 Then
For j = i To 2 Step -1
Application.DisplayAlerts = False
Sheets(j).Delete
Application.DisplayAlerts = True
Next
End If
Sheets(1).Select
'---------------------------------------------------------
'読み込み用数列を生成
For i = 1 To 256
textarray(i) = 2
Next
'---------------------------------------------------------
'読み込み
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & csvpath, _
Destination:=Range("A1"))
.TextFileCommaDelimiter = True
.TextFileColumnDataTypes = textarray
.Refresh
.Delete
End With
End Sub