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

Option Explicit

Sub sample()

    '読み込むCSVファイル
    Const CSV_FILE As String = "C:\Users\user\Desktop\sample.csv"
    'CSVファイルを読み込むシート名
    Const CSV_SHEET_NAME As String = "csv"
    
    Dim sheet As Worksheet
    Dim csvSheet As Worksheet
    
    '既にシート「csv」が存在する場合は削除
    For Each sheet In ThisWorkbook.Worksheets
        If sheet.Name = CSV_SHEET_NAME Then
            '確認メッセージを非表示
            Application.DisplayAlerts = False
            'シート削除
            Worksheets(CSV_SHEET_NAME).Delete
            '確認メッセージを表示
            Application.DisplayAlerts = True
        End If
    Next
    
    'シート「csv」を新規作成
    Set csvSheet = Worksheets.Add(After:=Worksheets(Worksheets.Count))
    csvSheet.Name = CSV_SHEET_NAME

    '「QueryTableオブジェクト(=クエリと接続)」を作成
    With csvSheet.QueryTables.Add(Connection:="TEXT;" + CSV_FILE, _
                                              Destination:=Range("B2"))
        '区切り文字に「カンマ区切り」を指定
        .TextFileCommaDelimiter = True
        '文字コードに「UTF-8」を指定
        .TextFilePlatform = 65001
        '読み込み開始行を指定
        .TextFileStartRow = 1
        '読み込むファイルの1~3列目の形式に「文字列」を指定
        .TextFileColumnDataTypes = Array(xlTextFormat, xlTextFormat, xlTextFormat)
        '読み込み実行
        .Refresh BackgroundQuery:=False
        '作成された「QueryTableオブジェクト(=クエリと接続)」を削除
        .Delete
    End With
    
End Sub

ネタ元

excel-vba.work