Sub 売上提出用を作成する()
    Dim filePath As String
    Dim mCode As Variant
    Dim formulaText As String
    Dim ws As Worksheet
    Dim lo As ListObject

    filePath = ThisWorkbook.Path & "\7-1-売上元データ.csv"

    mCode = Array( _
        "let", _
        "    ソース = Csv.Document(File.Contents(""" & filePath & """), [Delimiter="","", Encoding=65001, QuoteStyle=QuoteStyle.Csv]),", _
        "    ヘッダー昇格 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),", _
        "    列の選択 = Table.SelectColumns(ヘッダー昇格, {""受注ID"", ""受注日"", ""顧客名"", ""担当者"", ""商品名"", ""単価"", ""数量"", ""売上金額"", ""粗利""}),", _
        "    列順変更 = Table.ReorderColumns(列の選択, {""受注ID"", ""受注日"", ""商品名"", ""単価"", ""数量"", ""売上金額"", ""粗利"", ""担当者"", ""顧客名""})", _
        "in", _
        "    列順変更" _
    )

    formulaText = Join(mCode, vbCrLf)

    ThisWorkbook.Queries.Add _
        Name:="売上提出用", _
        Formula:=formulaText

    Set ws = ThisWorkbook.Worksheets("Sheet1")

    Set lo = ws.ListObjects.Add( _
        SourceType:=0, _
        Source:=Array( _
            "OLEDB;Provider=Microsoft.Mashup.OleDb.1;" & _
            "Data Source=$Workbook$;" & _
            "Location=""売上提出用"";" _
        ), _
        Destination:=ws.Range("A1") _
    )

    lo.Name = "T_売上提出用"

    With lo.QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [売上提出用]")
        .Refresh BackgroundQuery:=False
    End With

    ThisWorkbook.Queries("売上提出用").Delete
End Sub