小さいCSVファイルならば、高速に読み込むことを考えず、Textファイルに変換してから読み込まなくても良いだろう。

コードも短く、読みやすいのが利点。また、全てのデータを読み込まずに必要なデータを入手したら止めることもできるし、データを処理しながら読み込むこともできる。

まず、Line Input と、Split関数を用いた方法で、1行毎のデータを、カンマをもとにSpliet関数で配列に入れている。

Sub Sample()
    Dim text1 As String
    Dim myData1 As Variant
    Dim i As Long
    
    Open "C:\Users\HIDE\Desktop\新しいフォルダー\myBook1.csv" For Input As #1
    
    Cells.ClearContents
    Cells(1).Select
    
    Do Until EOF(1)
        Line Input #1, text1
    
        myData1 = Split(text1, ",")
    
        For i = 0 To 3
        
            Cells(ActiveCell.Row, i + 1).Value = myData1(i)
        
        Next i
        
        ActiveCell.Offset(1).Select
    
    Loop
    
    Close #1

End Sub


こちらは、Input で、1行毎にフィールドの要素を配列に入れていく方法

Sub Sample2()
    Dim text1 As String
    Dim myData(3) As Variant
    Dim i As Long
    
    Open "C:\Users\HIDE\Desktop\新しいフォルダー\myBook1.csv" For Input As #1
    
    Cells.ClearContents
    Cells(1).Select
    
    Do Until EOF(1)
        Input #1, myData(0), myData(1), myData(2), myData(3)
    
        For i = 0 To 3
        
            Cells(ActiveCell.Row, i + 1).Value = myData(i)
        
        Next i
        
        ActiveCell.Offset(1).Select
    
    Loop
    
    Close #1

End Sub

 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ