Sub Sample()
    Dim myPath As String, myQryStr As Variant

    If Dir(ThisWorkbook.Path & "\2月売上明細.csv") = "" Then
        MsgBox "2月売上明細.csv が見つかりません。", vbCritical
        Exit Sub
    End If

    '接続先指定
    myPath = ThisWorkbook.Path & "\2売上明細.csv"
    
    'M言語のコマンド文字列作成
    myQryStr = Array( _
        "let", _
            "source = Csv.Document(File.Contents(""" & myPath & """)),", _
            "header = Table.PromoteHeaders(source)", _
        "in", _
            "filter" _
        )
        
    '配列を文字列に変換
    myQryStr = Join(myQryStr, vbCrLf)
    
    '新規クエリを追加
    ThisWorkbook.Queries.Add Name:="PQ接続", Formula:=myQryStr

    'シート上にテーブルとして展開
    With ActiveSheet.ListObjects.Add( _
        SourceType:=0, _
        Source:="OLEDB;" & _
                "Provider=Microsoft.Mashup.OleDb.1;" & _
                "Data Source=$Workbook$;" & _
                "Location=PQ接続;", _
        Destination:=Range("A1") _
    )
        .QueryTable.CommandText = "SELECT * FROM [PQ接続]"
        .QueryTable.Refresh BackgroundQuery:=False
        .Name = "T_2月売上明細"
    End With
    
    'クエリ定義を削除
    ThisWorkbook.Queries("PQ接続").Delete

End Sub