【Excel VBA】CSVファイルから1行ずつ読み込む

CSVファイルから1行ずつ読み込む

ExcelにてCSVファイルを取り込む方法をご紹介します。

やり方はいろいろありますが
一般的なものとして1行ずつ取り込む方法をご紹介します。

ルーチン作業でCSVファイルの値をExcelに取り込む場合に有効な方法ですし、
取り込み時に処理を追加すれば汎用性は高いと思います。

サンプルコード


    Dim intFF As Integer            ' FreeFile値
    Dim strRec As String
    Dim strSplit() As String
    Dim idx as Integer
    Dim OpenFile As Variant
    Dim strSheetNam
	
    strSheetNam = ActiveSheet.Name
    OpenFile = "C:\Inport.csv"
    
    idx = 0
    
    ' FreeFile値の取得(以降この値で入出力する)
    intFF = FreeFile

    ' 指定ファイルをOPEN(入力モード)
    Open OpenFile For Input As #intFF
    ' ファイルのEOF(End of File)まで繰り返す
    Do Until EOF(intFF)
       
        ' レコード読込
        Line Input #intFF, strRec
        ' カンマ区切りを配列に格納
        strSplit = Split(strRec, ",")

        ' 値を貼り付け
        Worksheets(strSheetNam).Cells(idx, 1).Value = strSplit(0)
        Worksheets(strSheetNam).Cells(idx, 2).Value = strSplit(1)
        
        ' 次の行の為にカウントアップ    
        idx = idx + 1
        
    Loop
    
    Close #intFF

解説

「Open OpenFile For Input As #intFF」で対象のCSVファイルを開きます。

サンプルコードの場合、「OpenFile = “C:\Inport.csv”」の部分から
CドライブのInport.csvを指定しています。

そして「Line Input #intFF, strRec」の部分で1行ずつ読み込みます。

CSVファイルはカンマ区切りですので、
Split関数を使って、配列に格納し直してその後、シートの対象セルに貼り付けています。

貼り付ける際に、Replace関数等を使って
読み込んだ値を編集することで思い通りの処理にすることもできます。

今後もExcelやVBAについてお役立ち情報など
ご紹介していきたいと思います!!

以上、「【Excel VBA】CSVファイルから1行ずつ読み込む」でした。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする