dポイントプレゼントキャンペーン実施中!

現在、パワークエリーを設定している集計用ブックを「ツール」というフォルダ内に置いてあります。
「ツール」フォルダ内に、「new」「old」フォルダがあり、

[データの取得]→[ファイルから]→[フォルダから]という操作を2回行い、
「new」「old」それぞれのフォルダ内のファイルを取り込む設定をしています。
それぞれに入れるファイルは、作成日時が違うだけで同じレイアウトのブックになります。

「ツール」「new」「old」フォルダの位置関係は常に変わらず固定ですが、
「ツール」フォルダだけ移動する可能性があります。
別のPCのデスクトップにて開きたかったりするからです。

その都度ソースの変更をしないで済むようにするにはどうすれば良いでしょうか?
例えば、集計用ブックに「設定」シートを用意して、
A2セルに
C:\Users\admin\Desktop\ツール
と記述したパスに更新できれば大変助かるのですが。。。
そのマクロを割り当てたコマンドボタンを設定シートに置いておき、
最初のそのボタンをクリックする運用にすれば便利ですよね。

質問者からの補足コメント

  • どう思う?

    C:\Users\admin\Desktop\ツール
    というパスの明示は不要かも?と思いました。
    自身のブックの階層に必ず「new」「old」フォルダが存在する前提なので、
    「ThisWorkbook.Path」で自身の位置が特定されますね。
    「ツール」である必要はないですね。

    ただ、それをソースに書く力が不足してるのでどなたかお助け下さい。

      補足日時:2023/09/06 09:59

A 回答 (3件)

> でもデスクトップで運用したいので、パス書き換え自動処理したいです。


記事読めば方法自体は書いてあるでしょ。
    • good
    • 0

その手のフォルダはデスクトップのような場所に置かないのが基本です。



Cドライブ直下にフォルダを作って デスクトップにはショートカットを置
くようにすれば PCを変えてもファイルパスは変わりませんから悩む必要
がなくなります。

「相対参照でファイルパスを取得する方法」がない訳ではありませんが
プライバシー保護にリスクを抱えることになります。
https://memo.furyutei.com/entry/20220119/1642519 …
    • good
    • 0
この回答へのお礼

でもデスクトップで運用したいので、パス書き換え自動処理したいです。

お礼日時:2023/09/06 18:19

Sub UpdateFolderPath()


Dim newPath As String

' 新しいツールフォルダのパスを設定
newPath = "C:\Users\admin\Desktop\ツール"

' パワークエリーのクエリを更新
ThisWorkbook.Queries.Add Name:="Query1", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Folder.Files(""" & newPath & """)," & Chr(13) & "" & Chr(10) & " #" & ...
' ここでクエリの設定を更新
...
"in" & Chr(13) & "" & Chr(10) & " #" & ...
' ここでクエリの設定を更新
...

' ブックを保存
ThisWorkbook.Save

' 更新完了メッセージを表示
MsgBox "フォルダパスが更新されました。"
End Sub
    • good
    • 0
この回答へのお礼

早速、参考ソースを貼っていただいてありがとうございます。
まだ未熟なため、「ここでクエリの設定を更新」の不足箇所を読み解いているところです・・・

お礼日時:2023/09/06 09:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!