Sub クエリを削除してからPower_Queryを実行する()
    Dim myPath As String
    Dim myQryStr As Variant
    Dim ws As Worksheet
    Dim lo As ListObject
    Dim i As Long
              
    If Dir(ThisWorkbook.Path & "\担当者売上明細.csv") = "" Then
        MsgBox "担当者売上明細.csv が見つかりません。", vbCritical
        Exit Sub
    End If
      
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    On Error Resume Next

    '===== ListObject（QueryTableを含む）を削除 =====
    For Each ws In ThisWorkbook.Worksheets
        For i = ws.ListObjects.Count To 1 Step -1
            Set lo = ws.ListObjects(i)
            ' 外部データに接続されたテーブルのみ対象
            If Not lo.QueryTable Is Nothing Then
                lo.Delete
            End If
        Next i
    Next ws

    '===== WorkbookConnection を削除 =====
    For i = ThisWorkbook.Connections.Count To 1 Step -1
        ThisWorkbook.Connections(i).Delete
    Next i

    '===== Queries を削除 =====
    For i = ThisWorkbook.Queries.Count To 1 Step -1
        ThisWorkbook.Queries(i).Delete
    Next i

    On Error GoTo 0

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
       
    '===== ここからがPower Query =====
    myPath = ThisWorkbook.Path & "\担当者売上明細.csv"
    
    myQryStr = Array( _
        "let", _
            "source = Csv.Document(File.Contents(""" & myPath & """)),", _
            "header = Table.PromoteHeaders(source),", _
            "filter = Table.SelectRows(header, each [担当者名] = ""大村あつし"")", _
        "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_担当者売上明細"
        .QueryTable.Delete
    End With
    
    ThisWorkbook.Queries("PQ接続").Delete
End Sub


