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 つのステップ バイ ステップ チュートリアルがあります。 ここでは、自動化サービスを組み合わせて、ブックとフローの間でデータを渡す方法を示します。
- チュートリアル: Power Automate フローからスプレッドシートを更新する
- チュートリアル: ブック内のメールからコンテンツを自動的に保存する
- チュートリアル: スプレッドシート データに基づいて毎週のメール リマインダーを送信する
Excel からフローを作成する
さまざまなフロー テンプレートを使用して、Excel の Power Automate の使用を開始できます。 [ 自動化 ] タブで、[ タスクの自動化] を選択します。
これにより、複数のオプションを含む作業ウィンドウが開き、Office スクリプトを大規模な自動ソリューションに接続し始めます。 開始するオプションを選択します。 フローには現在のブックが付属しています。
ヒント
個々のスクリプトの [その他のオプション (...)] メニューからフローの作成を開始することもできます。
Excel コネクタ
Excel Online (Business) コネクタを使用すると、フローに Excel ブックへのアクセスが提供されます。 Office スクリプトを呼び出すアクションは 2 つあります。
- スクリプトを実行します。 これは、 OneDrive の既定の場所に格納されているスクリプトで使用するアクションです。
- SharePoint ライブラリからスクリプトを実行します。 これは、スクリプトがチームの SharePoint サイトに格納されている場合に使用するアクションです。
[ スクリプトの実行 ] アクションの場合、スクリプトの場所は常に OneDrive にあります。
Power Automate を使用した Office スクリプトのデータ セキュリティ
"スクリプトの実行" アクションにより、Excel コネクタを使用するユーザーにブックとそのデータへの重要なアクセス権が付与されます。 さらに、「Power Automate からの外部呼び出し」で説明されているとおり、外部 API の呼び出しを行うスクリプトにセキュリティ上のリスクがあります。 管理者が機密性の高いデータの流出を懸念している場合は、Excel Online コネクタをオフにするか、Office スクリプト管理者制御で Office スクリプトへのアクセスを制限することができます。
テナント内の非管理対象デバイスに対して条件付きアクセス ポリシーを有効にした管理者の場合は、管理されていないデバイスで Power Automate を無効にすることをお勧めします。 このプロセスの詳細については、ブログ記事「 Azure AD 条件付きアクセス ポリシーを使用した Power Apps と Power Automate へのアクセスの制御」を参照してください。
スクリプトのフローでのデータ転送
Power Automate を使用すると、フロー アクション間でデータを渡すことができます。 必要な情報を受け入れ、ブックからフローに必要なものを返すようにスクリプトを構成できます。 データは、静的な値、式、または動的コンテンツとしてスクリプト に渡されます。 個々のサービスのコネクタの詳細については、Power Automate コネクタに関するドキュメントを参照してください。
スクリプトとの間でデータを渡す方法の詳細については、次のドキュメントを参照してください。
- 「チュートリアル: ブックにメールからコンテンツを自動的に保存する」と「チュートリアル: スプレッドシート データに基づいて毎週の電子メール リマインダーを送信する」を使用して学習します。
- 自動タスク リマインダーのサンプル シナリオを試して、動作しているすべてを確認してください。
- 詳細な使用シナリオと技術的な TypeScript の詳細については、「 Power Automate のスクリプトとの間でデータを渡す 」を参照してください。
例
次のスクリーンショットは、フォームへの新しい応答が送信されるたびにトリガーされる Power Automate フローを示しています。 フローでは、Form からテーブルに満足値を追加するスクリプトが実行されます。 現在の平均満足度が返され、電子メールとして送信されます。
スクリプトの関数は 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 スクリプトが使用されます。
関連項目
Office Scripts