見出し画像

CSV ファイルを読み込む

Excel VBA で CSV ファイルを読み込む方法

Excel VBA で CSV ファイルを読み込む方法はいくつかありますが、代表的なものとして以下の2つが挙げられます。

1. Open メソッド を使う方法

最も基本的な方法です。ファイルを開いて、一行ずつ読み込むという処理を行います。

VB.Net

Sub CSVを読み込む()
    Dim strFile As String
    Dim strLine As String
    Dim intRow As Integer

    ' 読み込むCSVファイルのパスを指定
    strFile = "C:\Users\ユーザー名\Documents\data.csv"

    ' ファイルを開く
    Open strFile For Input As #1

    ' 1行ずつ読み込む
    intRow = 1
    Do While Not EOF(1)
        Line Input #1, strLine
        Cells(intRow, 1).Value = strLine
        intRow = intRow + 1
    Loop

    ' ファイルを閉じる
    Close #1
End Sub

コードは注意してご使用ください。

2. QueryTables.Add メソッド を使う方法

Excel の機能を使って、CSV ファイルをワークシートに直接取り込む方法です。

VB.Net

Sub CSVを読み込む()
    Dim strFile As String
    Dim ws As Worksheet

    ' 読み込むCSVファイルのパスを指定
    strFile = "C:\Users\ユーザー名\Documents\data.csv"

    ' データを貼り付けるワークシートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' CSVファイルをワークシートに読み込む
    With ws.QueryTables.Add(Connection:= _
        "TEXT;" & strFile, Destination:=ws.Range("A1"))
        .Name = "Query from " & strFile
        .FieldNames = True
        .TextFilePlatform = 4 ' Windows (ANSI)
        .TextFileStartRow = 1
        .Refresh BackgroundQuery:=False
    End With
End Sub

コードは注意してご使用ください。

どちらの方法を選ぶべきか

  • Open メソッド:

    • 詳細な制御が必要な場合

    • 大量のデータを効率よく処理したい場合

  • QueryTables.Add メソッド:

    • 簡単かつ迅速に CSV ファイルを取り込みたい場合

    • Excel の機能を活用したい場合

その他

  • 文字コード: CSV ファイルの文字コードを指定する必要があります。上記例では TextFilePlatform = 4 で Windows (ANSI) を指定していますが、UTF-8 などの場合は適切な値に変更してください。

  • 区切り文字: カンマ以外の区切り文字を使用している場合は、Delimiter プロパティで指定します。

  • データの形式: CSV ファイルのデータ形式に合わせて、読み込んだ後のデータの形式を調整する必要がある場合があります。

  • エラー処理: ファイルが見つからない、データの形式が不正などのエラーが発生した場合に備えて、エラー処理を追加することをおすすめします。

さらに詳しく知りたい方へ

ご自身の環境や処理内容に合わせて、最適な方法を選択してください。

何か他に知りたいことがあれば、お気軽にご質問ください。

例:

  • 「特定の列のデータだけを抽出したい」

  • 「複数の CSV ファイルをまとめて読み込みたい」

  • 「読み込んだデータをグラフにしたい」

これらの質問に対して、具体的なコード例を交えて解説いたします。

キーワード: Excel VBA, CSV, 読み込み, Open メソッド, QueryTables.Add メソッド

補足:

  • 上記のコードはあくまで一例です。ご自身の環境や処理内容に合わせて適宜修正してください。

  • より複雑な処理を行う場合は、VBA のマクロレコーダーを利用したり、インターネットで情報を検索したりして、より詳細な情報を収集してください。

  • VBA の学習には、書籍やオンライン教材が多数あります

この記事が気に入ったらサポートをしてみませんか?