| 
    
     |  | ▼VBA初心者 さん: >VBAでcsvファイルを取り込みたいと考えていますが、
 >以下のマクロだと文字列のまま取り込まれてしまいます。
 
 変数の↓を
 >Dim str() As String
 
 Variant型にしてみてください。なお、「str」はそういう名前の
 組み込み関数があるから、別の変数名にしたほうがいいでしょう
 
 すこし高速に読み込むなら、
 Sub Try1()
 Dim csvFile As String
 Dim ch As Integer
 Dim b() As Byte
 Dim csvStr As String
 Dim dat As Variant
 Dim v As Variant
 Dim i As Long, j As Long
 Dim n As Long, m As Long
 
 'CSVファイル名
 csvFile = Application.GetOpenFilename("CSVファイル,*.csv")
 
 ch = FreeFile()
 Open csvFile For Binary As #ch
 ReDim b(1 To LOF(ch))
 Get #ch, , b()
 Close #ch
 
 csvStr = StrConv(b(), vbUnicode)
 dat = Split(csvStr, vbCrLf)
 n = UBound(dat) - 1
 m = UBound(Split(dat(0), ","))
 ReDim dt(n, m)
 For i = 0 To n
 v = Split(dat(i), ",")
 For j = 0 To m
 dt(i, j) = v(j)
 Next
 Next
 
 With Range("A1")
 .CurrentRegion.ClearContents
 .Resize(n + 1, m + 1).Value = dt()
 End With
 End Sub
 
 こんなふうにも書けるとおもいます。
 
 |  |