|    | 
     ▼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 
 
こんなふうにも書けるとおもいます。 
 
 | 
     
    
   |