PowerAutomate×Excel【スクリプトが見つかりません】を対策する

スクリプトが見つかりません_への対策を2つ紹介
AさんはPowerAutomateでOfficeスクリプトを実行したい様です。・・・しかしうまくいってないみたいですね。

フロー自体は作成することができました。
実行すると私だけフローが通ります。
同じ環境に居るグループメンバーがフローを実行すると以下のようなエラーが出るようです。


スクリプトが見つかりません。共有が解除されたか、削除された可能性があります。



おそらく「スクリプトの実行」コネクタを使っていませんか?
このコネクタはグループ内でそのまま使うとエラーが出てしまいます。



確かにそのコネクタを使っています。なぜ分かったのですか?
なにか対策はありますか?



自身も経験したエラーなのでおおよそ見当がついた次第です。
もちろん対策はありますよ。2つの方法を紹介します。
エラーになる理由と対策を含めた3つのポイントをもとに今回のエラーについて考えていきましょう。
- 理由-1:なぜスクリプトは自分以外の人と共有できないのか?
- 対策-1:あらためてスクリプトを共有する
- 対策-2:スクリプトを共有スペースに置き直す&別のフローを用意する
関連記事
Officeスクリプトについて簡単に解説しています。
関連書籍
こちらの書籍を使えばOfficeスクリプトを勉強することができます。


Officeスクリプトとは
まずはOfficeスクリプトについて説明します。ひと言で表現すると「Web版Excelのマクロ」です。
Officeスクリプトについてより知りたい方はこちら記事をご覧ください。


理由-1:なぜスクリプトは自分以外の人と共有できないのか?
上のブロックで紹介した記事にも書いてあるのですがスクリプトが格納されている場所がキーになっています。
スクリプトの本体はOneDriveのマイファイルの中に格納されるから(デフォルト設定の場合)
これが答えです。個人のプライベート空間にスクリプトがあるので他者ではアクセスできません。
具体的にはスクリプトは以下パスの中に格納されています。
スクリプト作成者OneDrive→マイファイル→ドキュメント→Office Scripts→xxxxx.osts
よって対象のExcelを共有スペースに置いてフローを実行してもスクリプトに到達できずエラーになります。
グループ内のメンバーでスクリプトを共有するにはこの状態を変える必要があります。
対策-1:あらためてスクリプトを共有する
スクリプトを個人持ちにするのではなくグループで共有しようという考え方です。



グループ内のメンバーがスクリプトに到達できるようにします。


「スクリプトの実行」が用意されたフローの管理画面を表示させる。
画面右下付近に用意されています。見つけたら近くにある「編集」をクリック。
画面右端全体に表示されます。以下3つのブロックで構成されています。
- ユーザーやグループを招待
- 現在の共有相手
- 使用する接続
- ユーザーやグループを招待 ・・・ フローを共有する相手やグループを選択
- 使用する接続 ・・・ スクリプト作成者の接続を選択
この作業が済めばPowerAutomateの中で使用している「スクリプトの実行」コネクタはそのままでOKです。
これで指定したユーザーやグループのメンバーはスクリプトを共有することができるようになります。
メリット/デメリット
良い点、悪い点ともに2つあります。
メリット
- フロー内のコネクタはそのまま
- 環境内に存在するスクリプトは1つ
デメリット
- 都度フローを共有する必要がある
- フロー作成者が抜けるとフローが止まる
デメリットの1番を補足します。グループ内のメンバーが増えた際は都度共有の設定が必要になります。
よってグループ内メンバーの入れ替えが多い環境では大きなデメリットになります。
対策-2:スクリプトを共有スペースに置き直す&別のフローを用意する
続いて2つ目の方法です。スクリプトを共有できる場所に設置し新たにフローを作り変えます。



スクリプトをグループ内のメンバーが共有できる場所に移動させます。




作成したスクリプトを表示し中身を確認。(対象のスクリプトなのかを目視で確認する)
コードエディターの下方にある「コピーを保存」ボタンをクリック。
グループで共有しているSharePointサイトの任意の場所に保存する。
ExcelOnlineの「スクリプトの実行」コネクタを削除。
ExcelOnlineの「SharePointライブラリからスクリプトを実行」コネクタを選択。
適宜必要な情報を入力 or 選択する。
スクリプトはSharePointサイトに保存したものを選択する。
メリット/デメリット
こちらも良い点、悪い点ともに2つあります。
基本的に対策1でメリットだったものは対策2ではデメリットになります。
メリット
- 都度フローを共有しなくても良い
- フロー作成者が抜けてもフローが止まらない
デメリット
- フロー内のコネクタを変更する必要がある
- 環境内に存在するスクリプトが複数になる
デメリットの2番について少し補足します。
SharePointサイトにスクリプトを保存すると環境内に同じスクリプトが2つ生成されることになります。
- 自分のOneDriveにあるスクリプト
- SharePointサイトに保存したスクリプト
スクリプトを修正する際など一旦作った要素に変化を加える際は取り扱いに注意してください。



2つの対策について理解しました。
どちらの方法も良い点がありますね。



使用する方の環境に合う方を使ってみてください。


まとめ
ExcelOnlineで使用するOfficeスクリプトをグループ内のメンバーで共有する方法を2つ紹介しました。
PowerAutomateを含めPowerPlatformに属するアプリ群は互いに関わりあって環境を形成しています。
各アプリを使用する際はアプリ単体で考えるのではなく「アプリ群」で環境をとらえる様にしましょう。

