Power Automate を使用した Office スクリプトの実行

Power Automate を使用すると、Office スクリプトを大規模で自動化されたワークフローに追加できます。 Power Automate を使って、メールの内容をワークシートのテーブルに追加したり、ブックのコメントに基づいてプロジェクト管理ツールでアクションを作成したりできます。

概要

Power Automate を初めて使用する場合は、「Power Automate に関する入門情報」にアクセスすることをお勧めします。 そちらで、利用可能なすべてのオートメーションの可能性について詳しく学ぶことができます。 このドキュメントでは、Power Automate での Office スクリプトの動作と、それが Excel エクスペリエンスの改善にどのように役立つかに重点が置かれています。

詳細なチュートリアル

Power Automate と Office スクリプトの 3 つのステップ バイ ステップ チュートリアルがあります。 ここでは、自動化サービスを組み合わせて、ブックとフローの間でデータを渡す方法を示します。

Excel からフローを作成する

さまざまなフロー テンプレートを使用して、Excel の Power Automate の使用を開始できます。 [ 自動化 ] タブで、[ タスクの自動化] を選択します。

リボンの [タスクの自動化] ボタン。

これにより、複数のオプションが表示された作業ウィンドウが開き、Office スクリプトを大規模な自動ソリューションに接続し始めます。 開始するオプションを選択します。 フローには現在のブックが付属しています。

ヒント

個々のスクリプトの [その他のオプション (...)] メニューからフローの作成を開始することもできます。

Excel Online (Business) コネクタ

コネクタは、Power Automate とアプリケーション間のブリッジです。 Excel Online (Business) コネクタを使用すると、フローに Excel ブックへのアクセスが提供されます。 "スクリプトの実行" アクションにより、選択したブックからアクセスできるすべての Office スクリプトを呼び出すことができます。 また、フローによってデータを提供したり、フローの後の手順用にスクリプトで情報を返したりできるよう、スクリプトに入力パラメーターを指定することもできます。

重要

"スクリプトの実行" アクションにより、Excel コネクタを使用するユーザーにブックとそのデータへの重要なアクセス権が付与されます。 さらに、「Power Automate からの外部呼び出し」で説明されているとおり、外部 API の呼び出しを行うスクリプトにセキュリティ上のリスクがあります。 管理者が機密性の高いデータの流出を懸念している場合は、Excel Online コネクタをオフにするか、Office スクリプト管理者制御で Office スクリプトへのアクセスを制限することができます。

重要

Power Automate では、現時点では SharePoint に格納されているスクリプトはサポート されていません

スクリプトのフローでのデータ転送

Power Automate を使用すると、フロー アクション間でデータを渡すことができます。 必要な情報を受け入れ、ブックからフローに必要なものを返すようにスクリプトを構成できます。 データは、静的な値、式、または動的コンテンツとしてスクリプト 渡されます。 個々のサービスのコネクタの詳細については、Power Automate コネクタに関するドキュメントを参照してください。

スクリプトとの間でデータを渡す方法の詳細については、次のドキュメントを参照してください。

次のスクリーンショットは、GitHub の問題がお客様に割り当てられるたびにトリガーされる Power Automate フローを示しています。 このフローでは、Excel ブックのテーブルに問題を追加するスクリプトが実行されます。 そのテーブルに 5 つ以上の問題がある場合、フローでメール アラームが送信されます。

サンプルのフローを示す Power Automate フロー エディター。

スクリプトの main 関数では、問題の ID と問題のタイトルが入力パラメーターとして指定され、スクリプトによって問題テーブルの行数が返されます。

function main(
  workbook: ExcelScript.Workbook,
  issueId: string,
  issueTitle: string): number {
  // Get the "GitHub" worksheet.
  let worksheet = workbook.getWorksheet("GitHub");

  // Get the first table in this worksheet, which contains the table of GitHub issues.
  let issueTable = worksheet.getTables()[0];

  // Add the issue ID and issue title as a row.
  issueTable.addRow(-1, [issueId, issueTitle]);

  // Return the number of rows in the table, which represents how many issues are assigned to this user.
  return issueTable.getRangeBetweenHeaderAndTotal().getRowCount();
}

関連項目