こんにちは!これまでの記事で、Office スクリプトの基礎となるオブジェクト操作までを学びました。VBAの知識を活かして、Office スクリプトでのExcel Web版の自動化が少しずつイメージできるようになってきたのではないでしょうか。
「Office スクリプト単体でも便利だけど、もっと色々なことができるようにならないかな?」
「Power Automateと連携すると、どんなメリットがあるの?」
そう思ったあなたは、まさに次のステップに進む準備ができています!Office スクリプトは、単体でも強力なツールですが、Microsoft Power Automateと連携することで、その自動化の可能性は飛躍的に広がります。
この記事では、Power AutomateとOffice スクリプトを連携させる具体的な手順を、初心者の方にも分かりやすく解説します。Excelのデータを使ってメールを送信したり、特定の条件でファイルを更新したりと、Office スクリプトだけでは難しかった高度な自動化を実現するための第一歩を踏み出しましょう!
この記事で学べること
- Power Automateとは何か? Office スクリプトと連携するメリット
- Power Automateフローの基本的な作成方法
- Office スクリプトをPower Automateから呼び出す方法
- Power AutomateとOffice スクリプト間でデータをやり取りする方法
- 実践的な連携例の概要
Power Automateとは?Office スクリプトと連携するメリット
Power Automateとは
Power Automateは、Microsoftが提供するワークフロー自動化サービスです。様々なアプリやサービス(Outlook, SharePoint, Teams, Twitter, Webサービスなど)を連携させ、繰り返し発生するタスクを自動化することができます。
例えば、
- 特定のメールが届いたら、その内容をTeamsに通知する。
- SharePointリストに新しいアイテムが追加されたら、承認フローを開始する。
- 毎日決まった時間にWebサイトからデータを取得する。
といった自動化が、プログラミング知識がなくても、視覚的なインターフェースで実現できます。
Office スクリプトと連携するメリット
Power AutomateとOffice スクリプトを組み合わせることで、以下のような強力な自動化が可能になります。
- 外部サービスとの連携: Office スクリプト単体では難しい、メール送信、ファイルアップロード、データベース連携など、Excel以外の様々なサービスと連携できます。
- イベント駆動型自動化: 特定のトリガー(例: ファイルがSharePointにアップロードされたら、メールが届いたら、毎日定刻になったら)をきっかけにOffice スクリプトを実行できます。
- より複雑なロジック: Power Automateの豊富なアクションや条件分岐、ループ処理を活用することで、Office スクリプトだけでは記述が難しい、より複雑なビジネスロジックを実装できます。
- 承認プロセス: Power Automateの承認アクションと組み合わせることで、Excelデータの更新前に承認を必要とするようなワークフローも構築できます。
Power Automateフローの基本的な作成方法
まずはPower Automateの基本的なフロー作成方法を確認しましょう。
- Power Automateにアクセス: Microsoft 365アカウントでPower Automateにサインインします。
- 「作成」をクリック: 左側のメニューから「作成」をクリックします。
- フローの種類の選択: 今回は手動で実行できる「インスタント クラウド フロー」を選択します。
- インスタント クラウド フロー: ボタンクリックなどで手動実行。
- 自動化したクラウド フロー: 特定のイベント(ファイル作成、メール受信など)で自動実行。
- スケジュール済みクラウド フロー: 毎日・毎週など、指定したスケジュールで自動実行。
- フロー名の入力とトリガーの選択:
- フロー名に「Office スクリプト連携テスト」などの分かりやすい名前を入力します。
- トリガーは「フローを手動でトリガーする」を選択し、「作成」をクリックします。
これで空のフローが作成されました。

Office スクリプトをPower Automateから呼び出す
いよいよOffice スクリプトを呼び出すステップを追加しましょう。
- 「新しいステップ」をクリック: フローデザイナーで「新しいステップ」をクリックします。
- コネクタとアクションの検索: 検索ボックスに「Excel Online (Business)」と入力し、表示されるコネクタの中から「Excel Online (Business)」を選択します。
- アクションの選択: Excel Online (Business)のアクションの中から、「スクリプトを実行」を選択します。
- スクリプトの指定:
- 場所: Office スクリプトが保存されている場所(通常は「OneDrive for Business」)を選択します。
- ドキュメント ライブラリ: 「Documents」など、ファイルが保存されているドキュメントライブラリを選択します。
- ファイル: Office スクリプトが保存されているExcelファイルを選択します。
- スクリプト: 実行したいOffice スクリプトの名前を選択します。

Power AutomateとOffice スクリプト間でデータをやり取りする
Office スクリプトとPower Automateを連携する上で非常に重要なのが、データの受け渡しです。Power Automateからスクリプトに値を渡したり、スクリプトの実行結果をPower Automateで受け取ったりすることができます。
Power AutomateからOffice スクリプトへデータを渡す
Office スクリプトの main 関数の引数を追加することで、Power Automateから値を渡すことができます。
1. Office スクリプト側の準備
例えば、Power Automateからセルに書き込む文字列を受け取りたい場合、Office スクリプトを以下のように修正します。
function main(workbook: ExcelScript.Workbook, message: string) { // string型の引数'message'を追加
let selectedSheet = workbook.getActiveWorksheet();
selectedSheet.getRange("A1").setValue(message); // 受け取った'message'をA1セルに書き込む
}ポイント: main 関数の引数に、Power Automateから受け取りたいデータの名前と型(例: message: string)を追加します。
2. Power Automate側の設定
スクリプトを修正して保存すると、Power Automateの「スクリプトを実行」アクションに、Office スクリプトの引数が自動的に表示されます。
- スクリプトの引数: 表示された引数(例:
message)の入力欄に、Power Automateで動的に生成した値や、手動で入力した値を指定します。

Office スクリプトからPower Automateへデータを返す
Office スクリプトの実行結果をPower Automateの次のアクションで利用したい場合は、main関数のreturn文で値を返します。
1. Office スクリプト側の準備
例えば、シートのA1セルの値をPower Automateに返したい場合、Office スクリプトを以下のように修正します。
function main(workbook: ExcelScript.Workbook): string { // 戻り値の型をstringに指定
let selectedSheet = workbook.getActiveWorksheet();
let cellValue = selectedSheet.getRange("A1").getValue(); // A1セルの値を取得
return cellValue.toString(); // 取得した値を文字列として返す
}ポイント:
main関数の定義に: stringのように戻り値の型を指定します。return文で返したい値を指定します。Power Automateに渡せるのは、基本的なデータ型(文字列、数値、真偽値)や、それらの配列、またはオブジェクト(JSON形式)です。
2. Power Automate側の設定
スクリプトを修正して保存すると、Power Automateの「スクリプトを実行」アクションの出力として、Office スクリプトが返した値を利用できるようになります。
- 動的なコンテンツの利用: 「スクリプトを実行」アクションの後に「新しいステップ」を追加し、例えば「メール通知を送信する (V3)」アクションなどを設定します。
※下記画面はGMailを使用しています。 - メールの本文などで、「/」を入力し「動的コンテンツを挿入する」から「スクリプトの実行」の下にある「body/result」を選択すると、Office スクリプトが返した値を利用できます。

まとめ
この記事では、Power AutomateとOffice スクリプトを連携させるための基本的な手順と、データのやり取りの方法を解説しました。
- Power Automateは、様々なサービスを連携させ、繰り返しタスクを自動化するツール。
- Office スクリプトと連携することで、Excel Web版の自動化と外部サービス連携を組み合わせた、より高度な業務自動化が可能になる。
- Power Automateの「Excel Online (Business)」コネクタの「スクリプトを実行」アクションでOffice スクリプトを呼び出す。
main関数の引数でPower AutomateからOffice スクリプトへデータを渡し、return文でOffice スクリプトからPower Automateへデータを返す。
これにより、Office スクリプト単体では実現できなかった、トリガーに応じた自動実行や、他のサービスと連携したデータ処理などが可能になります。

コメント