Sub 顧客重複削除()
    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", _
        "    ソース = Excel.Workbook(File.Contents(""" & folderPath & "7-4-顧客マスター.xlsx""), null, true),", _
        "    顧客マスター重複データ = ソース{[Item=""7-4-顧客マスター重複データ"", Kind=""Sheet""]}[Data],", _
        "    ヘッダー昇格 = Table.PromoteHeaders(顧客マスター重複データ, [PromoteAllScalars=true]),", _
        "    重複削除 = Table.Distinct(ヘッダー昇格, {""顧客コード""})", _
        "in", _
        "    重複削除" _
    )

    formulaText = Join(mCode, vbCrLf)

    ThisWorkbook.Queries.Add _
        Name:="顧客重複削除", _
        Formula:=formulaText

    Set ws = ThisWorkbook.Worksheets("Sheet1")

    Set lo = ws.ListObjects.Add( _
        SourceType:=0, _
        Source:="OLEDB;Provider=Microsoft.Mashup.OleDb.1;" & _
                "Data Source=$Workbook$;" & _
                "Location=顧客重複削除;" & _
                "Extended Properties=""""", _
        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