Sub CSVを2つ読み込んでマージする()
    Dim folderPath As String
    Dim mCode As Variant
    Dim formulaText As String
    Dim ws As Worksheet
    Dim lo As ListObject

    folderPath = ThisWorkbook.Path & "\"

    mCode = Array( _
        "let", _
        "    売上明細ソース = Csv.Document(File.Contents(""" & folderPath & "1月売上明細.csv""), [Delimiter="","", Columns=3, Encoding=932, QuoteStyle=QuoteStyle.None]),", _
        "    昇格された売上明細ヘッダー = Table.PromoteHeaders(売上明細ソース, [PromoteAllScalars=true]),", _
        "    商品マスターソース = Csv.Document(File.Contents(""" & folderPath & "商品マスター.csv""), [Delimiter="","", Columns=3, Encoding=932, QuoteStyle=QuoteStyle.None]),", _
        "    昇格された商品マスターヘッダー = Table.PromoteHeaders(商品マスターソース, [PromoteAllScalars=true]),", _
        "    マージ1 = Table.NestedJoin(昇格された売上明細ヘッダー, {""商品コード""}, 昇格された商品マスターヘッダー, {""商品コード""}, ""商品マスター"", JoinKind.LeftOuter),", _
        "    展開された商品マスター = Table.ExpandTableColumn(マージ1, ""商品マスター"", {""商品名"", ""単価""}, {""商品名"", ""単価""}),", _
        "    変更された型 = Table.TransformColumnTypes(展開された商品マスター, {{""単価"", Int64.Type}, {""数量"", Int64.Type}}),", _
        "    並べ替えられた列 = Table.ReorderColumns(変更された型, {""伝票No"", ""商品コード"", ""商品名"", ""単価"", ""数量""}),", _
        "    並べ替えられた行 = Table.Sort(並べ替えられた列, {{""伝票No"", Order.Ascending}}),", _
        "    追加された売上金額 = Table.AddColumn(並べ替えられた行, ""売上金額"", each [単価] * [数量], Int64.Type)", _
        "in", _
        "    追加された売上金額" _
    )

    formulaText = Join(mCode, vbCrLf)

    ThisWorkbook.Queries.Add _
        Name:="1月営業成績", _
        Formula:=formulaText

    Set ws = ActiveSheet

    Set lo = ws.ListObjects.Add( _
        SourceType:=0, _
        Source:="OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=1月営業成績;Extended Properties=""""", _
        Destination:=ws.Range("A1") _
    )

    lo.Name = "T_1月営業成績"

    With lo.QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [1月営業成績]")
        .Refresh BackgroundQuery:=False
    End With
End Sub
