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-3-売上元データ.csv"

    mCode = Array( _
        "let", _
        "    ソース = Csv.Document(File.Contents(""" & filePath & """), [Delimiter="","", Encoding=932, QuoteStyle=QuoteStyle.Csv]),", _
        "    ヘッダー昇格 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),", _
        "    型変換 = Table.TransformColumnTypes(ヘッダー昇格, {{""受注日"", type date}, {""数量"", Int64.Type}, {""売上金額"", Int64.Type}}),", _
        "    並べ替え = Table.Sort(型変換, {{""担当者"", Order.Ascending}, {""売上金額"", Order.Descending}})", _
        "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