パワークエリのクエリを定期実行・定期更新する方法を紹介します。

ここではPowerAutomateDesktopとVBAマクロを利用した方法を紹介します。
定期更新・更新自動化は下記のような方法で定期実行できます。
- Power Automate Desktop + VBAマクロでクエリ更新
- タスクスケジューラ + PowerShellでクエリ更新
- タスクスケジューラ + VBAマクロ + コマンドプロンプトでクエリ更新
VBAマクロの作成
まずはデータ更新(クエリ更新)を実行するVBAマクロを作成します。
Excelファイル内のすべてのクエリを更新する場合 と クエリ名を指定してひとつのクエリを更新する場合 の主に2つの方法がありますので用途に合わせて使い分けてください。
すべてのクエリを更新
Sub test()
ActiveWorkbook.RefreshAll
End Sub
クエリ名を指定して更新
Sub test()
ActiveWorkbook.Connections("クエリ - クエリ名").Refresh
End Sub



マクロの名前となる test の部分は自由に変更してOKです!
クエリ名 の部分についてもご自身のクエリ名に変更してください。
VBAマクロの作成手順を含めた詳しい解説はこちらの記事で紹介してますので参考にしてみてください。


手順説明の例として、ここでは下図のように「クエリA」を実行するマクロ「クエリ更新」を作成します。


マクロ作成が完了したら 拡張子をxlsmにしてファイルを保存してください。
PowerAutomateのスケジュール実行設定
次にPowerAutomateDesktopのスケジュール実行設定について紹介します。
スケジュール実行の内容
Power Automate Desktopにおけるスケジュール実行とは、設定した時間間隔で同じ処理を繰り返し実行することです。
これにより定期的に処理している業務を自動で行うことができます。
スケジュール実行の設定
Power Automate Desktopのホーム画面で「新しいフロー」をクリックして、新しいフローを作成します。
フロー名は任意で設定してください。


まずはスケジュールに沿って作業を繰り返すループアクションを追加します。
アクションの「ループ」から「ループ条件」を選択します。


ループ条件において下図のように設定する。
「最初のオペランド」「2番目のオペランド」を0
として「演算子」とと等しい(=)
とすることでループ処理が止まらずに継続するようになります(両オペランドが0と等しいなら処理が継続する)


まずは対象のExcelファイルを起動します。
ループ処理の中に「Excelの起動」のアクションをドラッグ&ドロップしてください


ドキュメントパスで起動するExcelファイル(クエリを更新するファイル)を選択します。「読み取り専用として開く」はオフします。
Excelファイルを表示して処理したい場合は「インスタンスを表示する」をオンしてください。


ループ処理内にクエリ更新用のマクロを実行する処理を設定します。
ループ処理の中に「Excelマクロの実行」のアクションをドラッグ&ドロップしてください


実行するクエリ更新用のマクロを設定します。


次にマクロの処理が完了するまでの待機時間を設定します。
ループ処理の中にフローコントロールにある「Wait」をドラッグ&ドロップして任意の待機時間を設定してください。
ここでは10秒としています。


次に対象のExcelファイルを保存して閉じます。
ループ処理の中に「Excelを閉じる」のアクションをドラッグ&ドロップしてください


設定で「ドキュメントを保存」を選択してください。


さいごに何秒ごとにクエリ更新を実行するか設定します。
ループ処理の中にフローコントロールにある「待機」をドラッグ&ドロップしてください


設定画面で時間間隔を設定します。ここでは10分(600秒)ごとにクエリ更新を行うように設定します。


以上でスケジュール実行設定の完了です。
実行確認
作成したフローが正しく動いているか実行して確認します。
Power Automate Desktopで対象のフローを実行します。


フロー開始直後に一度クエリが更新されます。ここでは10時45分にフローを実行しています。


その後、設定した時間間隔をあけて再度エクセルファイルを確認するとこのようにクエリが更新されています。
きちんと設定した10分後の10時55分にクエリが更新されています。


以上で動作確認は完了です。


よく使うスケジュール待機時間
よく使うスケジュールを載せておきます。フローの最後の待機アクションでこの数字を設定すればOKです。
時間間隔 | 秒 |
---|---|
1時間ごと | 3600秒 |
毎日 | 86400秒 |
毎週 | 604800秒 |
パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。
・初心者向けおすすめ学習本
・初中級者向けおすすめ学習本
コメント