【VBA】CSVファイルをシートへ読み込む

以下のようなCSVファイルを、


以下のようにシートへ読み込むことが出来ます!


CSVファイルに「001」とある場合、
シート上も「001」となるようにします!
※0が消えて「1」とならないようにします。

文字コードを指定することで、
 ・UTF-8
 ・Shift_JIS
のファイルを読み込めます!

VBAコード

ここでは例として、
 ・デスクトップ配下のファイル「sample.csv」を
 ・シート「sample」へ
読み込みます。

文字コードは「UTF-8」
Option Explicit

Sub sample()

    '読み込むCSVファイル
    Const CSV_FILE As String = "C:\Users\user\Desktop\sample.csv"
    
    With Worksheets("sample").QueryTables.Add(Connection:="TEXT;" + CSV_FILE, _
                                              Destination:=Range("B2"))
        '区切り文字に「カンマ区切り」を指定
        .TextFileCommaDelimiter = True
        '文字コードに「UTF-8」を指定
        .TextFilePlatform = 65001
        '読み込むファイルの1~3列目の形式に「文字列」を指定
        .TextFileColumnDataTypes = Array(xlTextFormat, xlTextFormat, xlTextFormat)
        '読み込み実行
        .Refresh BackgroundQuery:=False
        '作成される「クエリと接続」を削除
        .Delete
    End With

End Sub

「Destination」に「Range(“B2”)」と指定しているため、読み込んだ内容はセル「B2」から設定されます。

区切り文字を「カンマ区切り」とするために、
 ・「TextFileParseType」に「xlDelimited」
 ・「TextFileCommaDelimiter」に「True」
を指定しています。

文字コードを「UTF-8」とするために、
 ・「TextFilePlatform」に「65001」
を指定しています。
※Shift_JISの場合は「932」。

読み込むファイルの1~3列目の形式に「文字列」とするために、
 ・「TextFileColumnDataTypes」に
 ・「Array(xlTextFormat, xlTextFormat, xlTextFormat)」
を指定しています。
※「文字列」以外(日付など)にしたい場合は、公式サイトを確認してください。

実行結果

CSVファイルをシートへ読み込むことが出来ました。

※列幅は自動で調整されます。

タイトルとURLをコピーしました