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

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

重要

Power Automate で Office スクリプトを使用するには、Microsoft 365 のビジネス ライセンスが必要です。 Office 365 Enterprise E1 ライセンスと Office 365 F3 ライセンスでは、Power Automate でスクリプトを使用できますが、Excel で Power Automate を直接統合することはできません。

ヒント

他のアプリに接続せずにスクリプトを自動的に実行しますか? スクリプト スケジュール機能 を使用します

概要

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

詳細なチュートリアル

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

Excel からフローを作成する

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

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

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

ヒント

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

Excel コネクタ

Excel Online (Business) コネクタを使用すると、フローに Excel ブックへのアクセスが提供されます。 Office スクリプトを呼び出すアクションは 2 つあります。

  • スクリプトを実行します。 これは、 OneDrive の既定の場所に格納されているスクリプトで使用するアクションです。
  • SharePoint ライブラリからスクリプトを実行します。 これは、スクリプトがチームの SharePoint サイトに格納されている場合に使用するアクションです。

[ スクリプトの実行 ] アクションの場合、スクリプトの場所は常に OneDrive にあります。

場所を示す完了したフィールドを含むスクリプトの実行アクションは 'OneDrive for Business'、ドキュメント ライブラリは 'OneDrive'、ファイルは 'daily-readings.xlsx'、スクリプトの名前は 'Format Table' です。

Power Automate を使用した Office スクリプトのデータ セキュリティ

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

テナント内の非管理対象デバイスに対して条件付きアクセス ポリシーを有効にした管理者の場合は、管理されていないデバイスで Power Automate を無効にすることをお勧めします。 このプロセスの詳細については、ブログ記事「 Azure AD 条件付きアクセス ポリシーを使用した Power Apps と Power Automate へのアクセスの制御」を参照してください

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

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

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

次のスクリーンショットは、フォームへの新しい応答が送信されるたびにトリガーされる Power Automate フローを示しています。 フローでは、Form からテーブルに満足値を追加するスクリプトが実行されます。 現在の平均満足度が返され、電子メールとして送信されます。

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

スクリプトの関数は main 、入力パラメーター (newData) として新しい満足度値を指定します。 スクリプトは、テーブルから平均満足度値を返します。

function main(workbook: ExcelScript.Workbook, newData: string): number {
  // Add the new data to the table.
  const table = workbook.getTable("SurveyTable");
  table.addRow(-1, [newData]);

  // Get the current satisfaction total.
  const satisfactionColumn = table.getColumnByName("Current Satisfaction");
  const values = satisfactionColumn.getRangeBetweenHeaderAndTotal().getValues();
  let total = 0.0;
  values.forEach((value) => {
    total += value[0] as number;
  });

  // Return the average satisfaction.
  return total / values.length;
}

注:

スクリプト パラメーターは型 string です。これは、Forms アクションがすべての値に対して返す型であるためです。

「Office スクリプトのサンプルとシナリオ」で、詳細なチュートリアルを使用した完全な例を見つけます。 多くの場合、Power Automate フローの中央で Office スクリプトが使用されます。

関連項目