Office Scripts

[Office Scripts]任意の場所にあるスクリプトを実行する方法

通常、Office スクリプトを実行するPower Automateフローを作成者とは別のユーザーで実行すると、エラーが発生して上手くいきません。

この問題を上手く解決する方法をからめもさん( @karamem0 )さんが発見し、ブログ記事で公開してくださいました。

詳細は上記のからめもさんの記事をご参照いただきたいのですが、肝となるのは実行するスクリプトをファイルのIDから生成したスクリプトIDとして指定することで、早い話がアクセス可能であれば任意の場所にあるスクリプトを実行できるというわけですね。
さっそく実際にフローを動かして動作確認してみます。

スクリプトの準備

まずは実行するスクリプトを作成します。
動作確認が目的なので、引数として受け取った値をセルに書き込むだけの簡単なスクリプトです。

function main(workbook: ExcelScript.Workbook, value: string)
{
  workbook.getFirstWorksheet(true).getRange("A1").setValue(value);
}

上記スクリプトを「SrcScript.osts」として保存し、OneDrive上の適当なフォルダに移動しました。
作成したスクリプトは通常、OneDrive → ドキュメント → Office Scripts フォルダの中に「osts」ファイルとして保存され、移動してしまうとエディター上で表示されなくなり、「スクリプトの実行」アクションでスクリプトを選択する際にも候補として挙がってこなくなります。

任意の場所にあるスクリプトを実行するPower Automateフロー

スクリプトの準備が出来たら、Power Automateでフローを作成します。

フロー全体

1. パスによるファイル メタデータの取得

「パスによるファイル メタデータの取得」アクションでスクリプトファイル(osts)のIDを取得します。

2. 作成

「作成」アクションで下記式を実行し、取得したファイルIDを元にしてスクリプトIDを生成します。

@{concat(encodeUriComponent('ms-officescript://onedrive_business_itemlink/'), split(outputs('パスによるファイル_メタデータの取得')?['body/Id'], '.')[1])}

3. スクリプトの実行

最後にスクリプトを実行します。
ここでのポイントは「スクリプト」の値を「カスタム値」として、上記アクションで生成したスクリプトIDで指定することです。
また、スクリプトに渡すパラメーターが必要であれば、「ScriptParameters」で指定します。

実行画面

実際にフローを実行したときの画面は下図の通りで、問題無くスクリプトが動作していることが確認できます。

任意の場所にあるスクリプトが実行できるようになったことで、からめもさんがブログで書いているように、作成者でなくてもフローからスクリプトを実行できますし、実際に試してはいませんが動的に作成したスクリプトを実行することもできるでしょう。

からめもさんさん、素晴らしい手法を公開していただき、ありがとうございました!

関連記事

Power Automate DesktopのSQLステートメントの実行アクションを使ってクラウドフローを実行する方法前のページ

[Power Automate Desktop]PDFで指定したキーワードが含まれているページのみを印刷するフロー次のページ

関連記事

  1. Office Scripts

    Project Oakdaleのテーブルに5000件のデータをインポートしてみました。

    前回の記事の続きです。前回、Power Automateを使っ…

  2. Office アドイン

    Office Scripts機能によってWeb版Officeの操作を自動化する

    前回、Ignite 2019で発表されたPower Automate(…

  3. Office アドイン

    Office Scriptsの使いどころ

    これまで当ブログでOffice Scriptsについて色々と記事を書い…

  4. Power Automate

    Google Apps ScriptとPower Automateの連携事例紹介

    今回の記事は、ガイアックスさん主催のイベント「Google Apps …

  5. Excel

    Power Automate経由でTwitterに投稿するVBAマクロ

    Hiro( @mofumofu_dance )さんがVBAとPower…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP