Power Automateで「引数instanceはExcelインスタンスである必要があります」と表示される原因と解決方法

Office系ソフトウェア

Power Automate DesktopでExcel操作を自動化していると、「アクティブなExcelワークシートの設定」などのアクション実行時に「引数instanceはExcelインスタンスである必要があります」というエラーが発生することがあります。前のExcel操作は正常に動作していたのに、途中の手順から突然エラーになるケースも少なくありません。

この記事では、Power Automate DesktopでExcelインスタンスエラーが発生する原因や、Excelインスタンスを正しく引き継ぐ方法、途中で動作しなくなる場合の確認ポイントについて解説します。

Power Automate DesktopのExcelインスタンスとは何か

Power Automate DesktopでExcelを操作する場合、単純にExcelファイルを開くだけではなく、「Excelインスタンス」という管理情報を使って操作対象のExcelを識別しています。

Excelインスタンスとは、Power Automateが現在操作しているExcelアプリケーションの接続情報のようなものです。例えば「Excelを起動」アクションを実行すると、その結果としてExcelインスタンスが作成され、後続のExcel操作アクションで利用します。

「アクティブなExcelワークシートの設定」や「Excelワークシートの読み取り」などのアクションでは、このExcelインスタンスが正しく指定されている必要があります。

「引数instanceはExcelインスタンスである必要があります」と表示される主な原因

このエラーは、Excel操作アクションに渡されている変数が、Power Automateが期待しているExcelインスタンスではない場合に発生します。

よくある原因として、以下のようなケースがあります。

  • Excelインスタンスを保存した変数を別の変数で上書きしている
  • Excelを閉じるアクションを途中で実行している
  • Excel起動アクションの結果を後続処理へ渡していない
  • コピーしたアクションで古い変数参照が残っている
  • Excelインスタンスではなくファイルパスなどの文字列を指定している

例えば、「Excelを起動」アクションで作成された%ExcelInstance%という変数を使用する必要があるところに、Excelファイル名を入力してしまうと、このエラーになります。

途中まで動作して突然Excelインスタンスが使えなくなる理由

前半の処理が正常に動いていた場合でも、途中でExcelインスタンスが失われることがあります。特に多いのが、途中でExcelを閉じる処理を入れているケースです。

例えば以下のような流れの場合、後半の処理でエラーになります。

処理 状態
Excelを起動 Excelインスタンス作成
セルへ入力 正常動作
Excelを閉じる インスタンス消失
ワークシート設定 Excelインスタンスエラー

Excelを閉じた後は、そのExcelアプリケーションとの接続が終了するため、同じインスタンスを使って操作を続けることはできません。

Excelインスタンスを正しく設定する方法

Excel操作を安定させるには、「Excelを起動」または「Excelに接続」アクションで取得したインスタンス変数を、すべてのExcel関連アクションで指定する必要があります。

確認するポイントは、対象アクションの「Excelインスタンス」の項目に正しい変数が設定されているかです。

例えば、以下のような流れにすると安定します。

  1. Excelを起動する
  2. 生成されたExcelインスタンス変数を確認する
  3. ワークシート操作やセル操作で同じ変数を指定する
  4. 最後にExcelを閉じる

Excelを閉じる処理は、すべてのExcel操作が終了した後に配置することが重要です。

変数の中身を確認して原因を特定する方法

Power Automate Desktopには、フロー実行時の変数値を確認できるデバッグ機能があります。

エラーが発生する直前で一時停止し、Excelインスタンスとして設定している変数に正しい値が入っているか確認してください。

正常なExcelインスタンスの場合は、単なる文字列ではなくPower Automate内部で管理されるオブジェクトとして扱われます。変数名だけでは判断できないため、実行結果を確認することが大切です。

Excel操作が不安定な場合に見直したい設定

Excelインスタンス関連のエラーが頻繁に発生する場合は、フロー構成そのものを見直すことも有効です。

例えば、複数のExcelファイルを同時に扱う場合、それぞれ別のExcelインスタンス変数を用意する必要があります。

また、手動でExcelを開いている状態とPower Automateが起動したExcelが混在すると、意図しないインスタンスを参照する場合があります。そのため、自動化処理ではPower Automate側でExcelを起動・管理する構成がおすすめです。

まとめ

Power Automate Desktopで「引数instanceはExcelインスタンスである必要があります」と表示される場合、多くはExcel操作に必要なインスタンス情報が正しく渡されていないことが原因です。

途中まで正常に動いていた場合でも、Excelを閉じた、変数を変更した、別の値を指定したなどの理由でExcelインスタンスが失われることがあります。

Excelを起動した際に作成されるインスタンス変数を最後まで正しく利用し、Excelを閉じる処理を最後に配置することで、多くのExcel操作エラーを防ぐことができます。

コメント

タイトルとURLをコピーしました