フィールド数、レコード数が不明の任意のCSVファイルを読み込む
 サンプルマクロは、指定したフィールド数、レコード数が不定のCSVファイルを
アクティブシートのセルに出力します。

Sub Sample()

    Dim myFileName As String
    Dim myFIleNo As Integer
    Dim myLine As String
    Dim myBuf() As String
    Dim myRow As Long, myClm As Integer
    Dim i As Integer, j As Integer
    
    myFileName = Application _
        .GetOpenFilename("CSVファイル(*.csv),*.csv", , _
        "CSVファイルの指定")
    
    If myFileName = "False" Then Exit Sub
    
    myFIleNo = FreeFile
    
    Application.ScreenUpdating = False
    
    Open myFileName For Input As #myFIleNo
    While EOF(myFIleNo) = False
        Line Input #myFIleNo, myLine
        j = InStr(i + 1, myLine, ",")
        Do Until j = 0
            myClm = myClm + 1
            ReDim Preserve myBuf(1 To myClm) As String
            myBuf(myClm) = Mid(myLine, i + 1, j - i - 1)
            i = j
            j = InStr(i + 1, myLine, ",")
        Loop
        myClm = myClm + 1
        ReDim Preserve myBuf(1 To myClm) As String
        myBuf(myClm) = Mid(myLine, i + 1)
        myRow = myRow + 1
        Range(Cells(myRow, 1), Cells(myRow, myClm)).Value _
            = myBuf
        i = 0
        myClm = 0
    Wend
    
    Close #myFIleNo
    
    Application.ScreenUpdating = True

End Sub

Excel95/97/2000



戻る


Excel Word Access VBA! モーグ