★ExcelVBA ~ QueryTableオブジェクトをすぐに使えるようにするために、ダミーxlsファイルでQueryTableオブジェクトを作っておくプログラム
  
※まだ書きかけです。すみません。
※間違ってたらすみません。
※メモ書きなので、自分でも意味不明な箇所も多いです。ごめんなさい。

  

あらかじめ、以下のファイルを作っておけばいいと思います。
ひな型として。
(特に会社がVBAを許可してくれないとき。ただ、xlsxファイルであっても、クエリを作ったのちにVBAコードを消しさえしてしまえば、「クエリを生成してxlsxファイルを保存可能」です。なので、そこのところまではできる会社も多いかも・・・。)

あとは毎回、それを(ブック丸ごとかシートを)コピーして使うとかでOKだと思います。
(ダミーのxlsxまたはxlsは削除しないほうが変な挙動が少ないのでそのほうがいいです)
========================

今回の事例では、
あらかじめ、「具」という列だけの「クエリダミー用-★捨てないで.xlsx」を
「D:\1」フォルダに置いておきます。
(xlsでもOK。その場合はコード内の拡張子もxlsxからxlsに変えます。)

それを使って、ダミーのQueryTableオブジェクトを作成します。
具の列には2、3行、適当に具材の名前を入れておきます。

そうやっていったん、ダミーのQueryTableオブジェクトを作成してしまえば、
あとは、ダミーのQueryTableオブジェクトを右クリックして
「クエリの編集」で、Accessクエリのように操作できる。
「必要なシートを全て用意した」、そういうxlsやxlsxを指定し直せるから。

ListObjectオブジェクト(QueryTableオブジェクトを含む)、
つまり、「Excelにおいての”テーブル機能”」だと、
段階的に(ネスト的に)かけていくとすぐエラーになってしまうけど、
QueryTableオブジェクトだと何段階でもエラーにならないから
QueryTableオブジェクトをあえて使います。
パワークエリのようなことが、シートを見て確認しながらできます。

ただし、3万行以下のデータくらいにしか使えないです。
できれば1万行以下。
でもそれでも中小零細の場合はかなり使えると思います。
SQLを使うので、パワークエリやVBAよりは属人化しないかも?

名前定義はExcelが勝手に自動生成するので競合しないようになっています。
その部分でのエラーは出ないと思います。

なお、QueryTableオブジェクトを消す時は、列丸ごとで消すこと。
ただし、勝手に自動生成された名前定義は消えないので手動消す必要があります。
不要な名前定義は「REF!」のようなエラー的な文言が表示されているので
それを目印に消せばいいと思います。
(別シートだど同名の名前定義が作れるっぽいです。)

個人用マクロブックかアドインに仕込んでもいいと思います。
常に使いたいので。(いずれも会社がVBAを許可してくれていれば、ですが。)