Power AutomateでExcelのクエリを自動更新するには?どうしたらよい?

Power AutomateでExcelの「クエリ」を自動更新する方法:データ分析レポートを常に最新に保つ秘訣!

「Excel(エクセル)のファイルにPower Query(パワークエリ)を使って、会社のデータベースから最新のデータを取り込んでいるんだけど、このクエリの『更新』ボタンを毎日手で押すのが手間なんだ…」「Power Automate(パワー・オートメイト)を使って、このExcelのクエリを自動で更新して、常に最新のレポートが使えるようにできないかな?」

こんな風に感じたことはありませんか? ExcelのPower Queryは、外部のデータソース(会社のデータベース、Webサイトのデータ、SharePoint(シェアポイント)のリストなど)からデータを柔軟に取り込み、加工できる非常に強力な機能です。しかし、取り込んだデータは、手動で「更新」ボタンを押さない限り、元のデータソースが更新されてもExcelファイルの中身は変わりません。日々の業務でこの「更新」作業が繰り返し発生する場合、その手間は決して小さくありません。

Power Automateを使えば、ExcelのPower Queryを自動で更新する仕組みを構築できます。これにより、あなたのExcelレポートやデータ分析ファイルが常に最新の状態に保たれ、手動での更新作業から解放され、業務の効率が大きく向上します。


 

Excelの「クエリ」と「自動更新」ってどんなこと?

まず、Excelの「クエリ」が何を指しているのか、そしてそれを「自動更新する」とはどういうことなのかを理解しておきましょう。

 

Excelの「クエリ(Power Query)」とは?

Excelの「クエリ」は、主に「Power Query(パワークエリ)」というExcelの機能を使って、外部のデータソース(例:会社のデータベース、Webサイトの表、SharePointのリスト、別のExcelファイルなど)からデータを取得し、Excelシートに取り込むための仕組みです。Power Queryは、データを取得するだけでなく、不要な行や列を削除したり、データを結合したり、形式を変換したりといった、複雑なデータ加工を自動で行うことができます。一度クエリを設定すれば、元のデータソースが更新された際に、そのクエリを「更新」するだけで、加工済みの最新データがExcelシートに反映されます。

 

クエリの「更新」とは?

クエリの「更新」とは、Power Queryで設定した手順をもう一度実行し、元のデータソースから最新のデータを取得して、Excelシートを最新の状態にすることを指します。通常は、Excelの「データ」タブにある「更新」ボタンや「すべて更新」ボタンを手動でクリックすることで行われます。この手動操作を、Power Automateで自動的に行わせたい、というのが今回の目的です。

 

なぜクエリを自動更新したいのか?そのメリット

  • 常に最新のレポートを維持: 手動での更新作業をなくし、月次レポートや日次集計表が常に最新のデータに基づいて自動で更新されるようにします。これにより、古いデータに基づく誤った判断を防ぐことができます。
  • 手作業の削減と効率化: 日々、あるいは定期的に行うExcelの「更新」ボタンを押す手間がなくなります。これにより、作業時間と手間が大幅に削減され、担当者はデータ分析や意思決定といった、より価値の高い業務に集中できるようになります。
  • ヒューマンエラーの削減: 更新忘れや、誤ったタイミングでの更新といった人為的なミスを防ぎ、データの一貫性と正確性を保ちます。
  • 情報共有の自動化: クエリを自動更新した後、その更新されたExcelファイルをPDFに変換したり、関係者にメールで自動送信したり、Teams(チームズ)のチャネルに通知したりするなど、情報配布プロセス全体を自動化できます。

 

Power AutomateでExcelのクエリを自動更新する主な方法

Power AutomateでExcelのクエリを自動更新する方法は、主に二つのアプローチがあります。どちらを選ぶかは、あなたのExcelファイルがどこにあるか(クラウド上か、パソコン上か)、そしてクエリの種類(Power QueryかVBAか)によって変わってきます。

 

方法1:Power Automate Desktop(RPA)を使ってパソコン上のExcelを操作する(最も確実)

この方法が、Power AutomateでExcelのクエリを自動更新する上で、最も確実で広く使われている方法です。Power Automate Desktop(PAD:パワー・オートメイト・デスクトップ)という、あなたのパソコン上の操作を自動化するツールを使います。このツールは、まるで人間がパソコンを操作するように、Excelを開き、クエリの更新ボタンをクリックする動作を自動で行います。

この方法の仕組みとメリット

  • 実際のExcelアプリを操作: あなたのパソコンにインストールされているExcelアプリを直接操作するため、Power Queryの「すべて更新」ボタンを押す操作を忠実に再現できます。これにより、複雑なPower Queryの設定でも、確実に更新が可能です。
  • レイアウトの再現性が高い: Excelアプリを介するため、更新後のExcelファイルの表示が、あなたが期待するレイアウトと全く同じになります。
  • どこにファイルがあっても対応可能: パソコン上にあれば、そのファイルがローカル、ネットワークドライブ、OneDrive、SharePointのどこにあっても対応できます。
  • 細かな印刷設定も可能: 更新後にPDFに変換する場合など、Excelの印刷ダイアログの細かなオプションも自動化できます。

Power Automate Desktopを使うやり方(例:スケジュールでExcelクエリを自動更新)

  1. Excelファイルの準備:Power Queryの「バックグラウンドで更新する」をオフにするまず、クエリを更新したいExcelファイルを開き、Power Queryの設定を一つ変更しておく必要があります。これは、Power Automate Desktopがクエリの更新完了を正確に待機できるようにするためです。
    • Excelファイルを開き、「データ」タブをクリックします。
    • 「クエリと接続」ウィンドウ(または「クエリ」グループ)を表示させます。
    • 更新したいクエリを右クリックし、「プロパティ」を選択します。
    • 「使用方法」タブ(または「接続のプロパティ」)を開き、「バックグラウンドで更新する」というチェックボックスのチェックを外して(オフにして)ください。これにより、クエリの更新が完了するまでExcelが待機するようになります。
    • この変更を保存してExcelファイルを閉じます。
  2. Power Automate Desktopをインストールします。あなたのパソコンにPower Automate Desktopをインストールし、サインインしておきます。
  3. Power Automate Desktopで新しいフローを作成します。Power Automate Desktopを開き、ホーム画面から「新しいフロー」をクリックして、新しいデスクトップフローを作成します。フロー名を分かりやすいものにします(例: 「Excelクエリ自動更新フロー」)。
  4. デスクトップフローでExcelのクエリ更新操作を記録・作成します。作成したデスクトップフローのデザイナー画面で、以下のExcel操作を記録または手動でアクションを追加していきます。
    • 「Excelの起動」アクション: Power Queryを更新したいExcelファイルを指定して開きます。「ドキュメントのパス」にExcelファイルのフルパス(例: C:\Users\あなたのユーザー名\OneDrive - 会社名\SharePointフォルダ\レポート.xlsx)を入力します。「インスタンスを表示する」を「オン」にして、Excelが画面上に表示されるようにすると、テスト時に確認しやすくなります。
    • 「Excelワークシートの選択」アクション: クエリが設定されているシートをアクティブ化します。
    • 「キーの送信」アクション: Excelの「すべて更新」ショートカットキーである「{Control}({Alt})F5」を送信します。
      • 「ウィンドウインスタンス」でExcelファイルを指定します。
      • 「送信するキー」に「{Control}({Alt})F5」と入力します。
    • 「待機」アクション: クエリの更新には時間がかかる場合があります。更新が完了するまで十分に待機するために、「待機」アクションを追加し、例えば「60秒」など、十分な秒数を設定します。クエリのデータ量やネットワーク状況によって調整が必要です。
    • 「Excelを閉じる」アクション: 処理が終わったら、開いたExcelファイルを「保存」して閉じます。
      • 「Excelインスタンス」で開いたExcelファイルを指定します。
      • 「更新前にブックを保存する」は「はい」にします。
  5. デスクトップフローを保存します。作成したデスクトップフローを保存します。
  6. クラウドフローでデスクトップフローを呼び出すように設定します。Excelクエリの更新を自動化したいタイミングに合わせて、Power Automateのウェブポータルで「スケジュール済みクラウド フロー」を作成します。例えば、「毎日午前9時に」実行するように設定します。このスケジュール済みクラウドフローの中に、「デスクトップ用フローを実行します」アクションを追加します。
    • デスクトップ用フロー: 先ほどPower Automate Desktopで作成したフローを選択します。
    • 実行モード: 「アテンド型」(PCの画面上で操作が行われるのが見える)または「非アテンド型」(バックグラウンドで操作が行われる。追加ライセンスが必要)を選択します。

この方法の便利な点

  • 高い確実性: 実際のExcelアプリを操作するため、Power Queryの更新が確実に行われます。
  • レイアウトの維持: 更新後のExcelファイルのレイアウトや書式が正確に維持されます。
  • 複雑なクエリにも対応: より複雑なPower Queryや、VBAマクロを含むExcelファイルでも対応しやすいです。

知っておいてほしいこと

  • パソコンの起動が必要: デスクトップフローを実行するには、Power Automate Desktopがインストールされたパソコンが起動している必要があります。また、ログイン状態である必要もあります。
  • 環境の変化に弱い: パソコンの画面解像度、Excelのバージョン、Officeの更新などによって、ExcelアプリのUI(ユーザーインターフェース)の配置が変わると、フローが動作しなくなる可能性があります。定期的なメンテナンスが必要になる場合があります。
  • エラーハンドリングが重要: Excelの起動失敗、クエリ更新の失敗、ポップアップ表示などでフローが停止しないよう、詳細なエラーハンドリング(例: ポップアップが表示されたら閉じる、エラー発生時に通知する)を設定することが重要です。

 

方法2:Power Automateのクラウドフローから「Excel Online (Business)」コネクタを使う(限定的だがシンプル)

この方法は、クラウド上に保存されたExcelファイルで、特定のテーブルのデータを更新するのに適しています。ただし、Power Queryの「更新」ボタンを直接押す機能は、Excel Online (Business) コネクタには直接提供されていません。この方法は、Excel Onlineのテーブルに対してデータを「書き込み」更新する形になります。

この方法の仕組みとメリット

  • クラウドで完結: ファイルのダウンロードや、パソコンにExcelアプリがインストールされている必要がありません。すべてクラウド上で処理が完結します。
  • 特定のテーブルを操作: Excelファイル内の特定の「テーブル」に対して、行を追加したり、既存の行を更新したり、削除したりできます。

「Excel Online (Business)」コネクタを使うやり方(例:SharePointリストからExcelテーブルを更新)

  1. 更新したいExcelファイルを準備します。SharePointやOneDriveに、Power Automateで更新したいExcelファイルを保存しておきます。このExcelファイルには、Power Queryで取り込んだデータが表示されている部分を「テーブル」として設定しておく必要があります。
  2. Power Automateで新しいフローを作成します。ウェブブラウザでPower Automate(https://www.google.com/search?q=make.powerautomate.com)にアクセスし、あなたのMicrosoft 365アカウントでサインインします。「作成」から「スケジュール済みクラウド フロー」(例: 毎日午前9時に実行)を選択してください。
  3. データソースから最新のデータを取得します。例えば、Power Queryが元データとしていたSharePointリストから最新のデータを「アイテムを取得します (SharePoint)」アクションで取得します。
  4. Excel Onlineの「表に行を追加します」または「行を更新します」アクションを使います。「新しいステップ」を追加し、検索ボックスに「Excel Online (Business)」と入力します。アクションの中から、Excelファイル内のテーブルを操作するアクションを選びます。
    • 「表に行を追加します」: 既存のテーブルの最後に新しいデータを追加する場合に。
    • 「キー列の値で一致する行を更新します」: 特定のID列などをキーに、既存の行のデータを更新する場合に。
    • 「表の行を削除します」: 不要な行を削除する場合に。
    • 「ファイルのコンテンツを取得 (Excel)」: このアクションは、Power Queryの「更新」とは直接関係ありません。
    • 【注意】: 「クエリを更新する」という直接的なアクションは、このコネクタには提供されていません。
  5. アクションの設定を行います。Excelファイルのある場所やファイル名を指定し、どのテーブルを操作するかを選びます。そして、取得したデータをExcelのテーブルにマッピングして追加・更新するように設定します。
  6. フローを保存し、テストします。

この方法の知っておいてほしいこと

  • Power Queryの「更新」ボタンは押さない: この方法では、ExcelファイルのPower Query設定を直接「更新」するわけではありません。あくまで、元のデータソースからPower Automateがデータを取得し、それをExcel Online上の「テーブル」に書き込み直す、という操作になります。
  • 用途が限定される: Power Queryが複雑な加工ステップを持っている場合や、複数のクエリの依存関係がある場合、この方法では対応が難しいことがあります。
  • エラーハンドリングが重要: データソースからのデータ取得や、Excelへの書き込みが失敗しないよう、丁寧なエラーハンドリングを設定しておく必要があります。

 

 Excelのクエリ自動更新を成功させるための「大切なヒント」

Excelのクエリ自動更新は、非常に便利である反面、いくつかの注意点や工夫が必要になります。

Power Queryの「バックグラウンドで更新する」設定を確認する

前述したように、Power Automate Desktopを使う場合、ExcelのPower Queryのプロパティで「バックグラウンドで更新する」というチェックボックスのチェックを外して(オフにして)ください。これがオンになっていると、Excelがクエリの更新完了を待機せず、フローが途中で進んでしまう可能性があります。

ネットワーク環境とファイルサイズに注意する

Excelファイルがクラウド上にある場合、ネットワークの安定性は非常に重要です。また、Excelファイルが非常に大きい(例えば数十MB以上)場合や、Power Queryが大量のデータを取得する場合、クエリの更新に時間がかかり、タイムアウトエラーが発生する可能性があります。

対策: Power Automate Desktopで「待機」アクションの時間を十分に長く設定したり、Power Automateの「再試行ポリシー」を設定したりするなど、エラーハンドリングを強化してください。

 

ライセンス要件を確認する

Power Automate Desktopの「非アテンド型」(パソコンの画面が操作されているのを見ずに、自動で裏で実行される)実行や、一部のPower Automateコネクタ(プレミアムコネクタ)の利用には、Power Automateの有償ライセンスが必要となる場合があります。事前にライセンス要件を確認し、適切なプランを契約しておきましょう。

Excelファイルが「開かれている」状態に注意する

Power Automate DesktopでExcelクエリを更新する場合、対象のExcelファイルが他のユーザーによって開かれていると、ロックされてしまい、更新に失敗する可能性があります。

対策: フローの実行時間を、そのファイルが使われていない深夜など、他のユーザーがファイルを開いていない時間帯に設定することを検討してください。

エラー通知と監視を設定する

クエリの更新が失敗した場合に備えて、必ずエラーハンドリングを設定し、Power Automateのフローがエラーになったことを、自動でメールやTeamsに通知する仕組みを構築しておきましょう。これにより、問題発生時にすぐに気づき、対応することができます。

テスト環境での十分な検証

本番環境で実際にクエリの自動更新を行う前に、必ずテスト環境でフローを十分にテストしてください。様々なシナリオ(例: データソースが一時的に利用できない、Excelファイルがロックされている、更新データがない場合など)を想定してテストを行うことで、本番稼働後のトラブルを未然に防ぐことができます。


Excelクエリの自動更新で、データ分析をもっとスムーズに!

Power AutomateでExcelのクエリを自動更新する方法は、あなたのExcelファイルの場所や、求められる自動化のレベルによって最適なアプローチが異なります。

  • Excelアプリを直接操作して確実に更新したいなら、Power Automate Desktopを使う方法が最もおすすめです。 これにより、普段の手動操作をそのまま自動化できます。
  • クラウド上のExcelテーブルを操作したいなら、Excel Online (Business) コネクタを使う方法も選択肢になりますが、これはPower Queryの「更新」とは直接異なる点に注意が必要です。

どちらの方法を選ぶ場合でも、Excelファイルの準備(Power Query設定の調整)と、エラーハンドリング、そして十分なテストが成功の鍵となります。これらの方法を上手に活用して、あなたのExcelレポートやデータ分析を常に最新の状態に保ち、業務の効率を飛躍的に向上させてくださいね。