Power Automate クラウドフロー 実習ノート
ユースフル「Power Automate クラウドフローコース」(講師:鳥羽 眞嘉)の動画の内容を、読み物として整理しました。画面の横に開いて、同じフローを自分で作れるようにしてあります。
使い方:手順の番号の下にあるチェックボックスで、できたところに印を付けられます(このブラウザに保存)。この形の文字はクリックするとコピーできます。画像はクリックで拡大できます。
※画面は収録時点(2024年)の Power Automate です。UI の表記や配置は変わっている場合があります。「補足」と書いた箇所は講座外の注記です。
このコースで作るフロー一覧
| # | フロー(もし A だったら → B をする) | フローの種類 | 新しく学ぶこと |
|---|---|---|---|
| 02 | Forms に問い合わせがあったら → Teams に投稿 | 自動化 | 作成の基本手順・保存 |
| 04 | Forms に問い合わせ → 応答の詳細を取得 → 内容を埋め込んで Teams に投稿 | 自動化 | 動的コンテンツ(⚡) |
| 05 | Forms → Planner タスク作成 → Teams 投稿 → Outlook 返信 | 自動化(テンプレート) | テンプレート・アクションのコピー&ペースト |
| 06 | 毎週金曜17時になったら → Teams に投稿 | スケジュール済み | Recurrence・Time Zone・Start Time の Z |
| 07 | SharePoint ライブラリにファイルがアップされたら → Teams に通知 | 自動化 | SharePoint ライブラリ |
| 08 | 特定のメールが届いたら → Teams に通知 | 自動化 | 差出人・件名フィルター(部分一致) |
| 09 | 添付ファイル付きメールが届いたら → OneDrive に保存 | 自動化 | 添付ファイル設定・For each |
| 10 | 実行ボタンを押したら → Excel の表に行を追加 | インスタント | Excel 操作の2つの注意点 |
| 11 | 実行ボタンを押したら → Excel を読み込み → SharePoint リストに登録 | インスタント | SharePoint リスト・int()・ISO 8601・テスト |
| 12 | SharePoint リストが変更されたら → Teams 通知(ステータス=完了のときだけ) | 自動化 | 条件分岐 |
| 13 | OneDrive でファイルを選択したら → PDF に変換 → SharePoint にアップ | インスタント | 選択したファイルの場合・アプリ内から実行 |
| 14 | SharePoint リストが変更されたら → Planner タスク作成(メモ・3日後の期限付き) | 自動化 | タスクの詳細の更新・Date Time |
| 15 | Forms で有給申請があったら → 承認 → 結果に応じて Teams 通知 | 自動化 | 承認コネクタ・Approve/Reject の分岐 |
用語集・早見表
| 用語 | 意味 | 詳しく |
|---|---|---|
| もし A だったら B をする | Power Automate の唯一の構文。A=きっかけ、B=処理 | #02 |
| トリガー | きっかけ。フローを実行するための引き金 | #03 |
| アクション | 処理。トリガーによって引き起こされる作業(何個でも追加できる) | #03 |
| フロー | トリガー+アクションでできた自動化のプログラム全体 | #03 |
| コネクタ | アプリごとに用意された接続口 | #03 |
| 接続 | Power Automate がアプリを操作するためのログイン(認証)作業 | #03 |
| 動的コンテンツ | 処理を実行して得られる値。前の処理で得た値を次の処理で使う(雷マーク ⚡ から選ぶ) | #04 |
| テンプレート | フローのひな形・サンプル集(数千種類) | #05 |
| 自動化したクラウド フロー | 他のアプリの動作がきっかけ(一番よく使う) | #02 |
| インスタント クラウド フロー | 手動(ボタンをポチッと押す)がきっかけ | #02 #10 #13 |
| スケジュール済みクラウド フロー | 日時・間隔がきっかけ(開始日+繰り返し間隔) | #06 |
| For each | 複数の項目(添付ファイル・表の行など)に同じ処理を繰り返す。自動で挿入される | #09 #11 |
| 条件(条件分岐) | 2つの値を比べ、True/False で処理を切り分ける(ランタイム[組み込み]→ Control) | #12 #15 |
| SharePoint リスト | SharePoint 内のデータベース形式の表。データの種類に厳密 | #11 |
| 承認コネクタ | 承認・拒否の判断をフローに組み込む。「開始して承認を待機」を使う(ランタイム[標準]) | #15 |
よくあるつまずき
- 作ったら必ず [保存](保存しないとフローが有効にならない)
- Forms の回答内容を使うときは 「応答の詳細を取得する」 をセットで入れる(#04)
- スケジュールは Time Zone を東京に、Start Time の末尾 Z を削除(#06)
- Excel は オンライン上(SharePoint/OneDrive) の テーブル しか操作できない(#10)
- Excel → SharePoint リストは 数値は int()、日付は ISO 8601(#11)
- Control・Date Time は ランタイム[組み込み]、承認は ランタイム[標準] から探す(#12 #14 #15)
- 承認では 要求元 に Responders' Email を設定(#15)
#00オープニング
講座のねらいと全体像。Power Automate(クラウドフロー)は、Microsoft の Web アプリ同士を連携させて業務を自動化するツールです。
Power Automate(クラウドフロー)とは
- 普段使っている Microsoft の Web アプリケーション(Forms・Teams・SharePoint・OneDrive・Outlook など)を連携させることで自動化する点が特徴。
- 「もし A だったら + B をする」(=こんなきっかけがあったら、この処理を実行してね)というシンプルな構文でプログラムを作れるので、初めて自動化に挑戦する人にもぴったり。
- これから自動化に挑戦する人も、一度学んだけど難しかった人も安心して受講できる内容。
講座の目次
- クラウドフローとは
- 通知の自動化
- メールの自動化
- SharePoint の操作
- その他自動化
- 承認フロー
「クラウドフローって何?」という疑問から、明日職場ですぐ使える実務のプログラムまで紹介します。
講師からのメッセージ:Microsoft の Web アプリを使う全員におすすめ
Teams・Outlook・SharePoint・OneDrive など、バラバラに存在していたアプリ同士を、クラウドフローで自動的に連携できます。たとえば次のようなことです。
- Outlook のメールに特定の添付ファイルがあったら → 自動で OneDrive へ保存
- SharePoint にファイルがアップされたら → 自動で Teams へメッセージ
- 毎月、決まった時刻になったら → メッセージを送る
アプリ・データ・業務プロセスの連携ができるため、働き方を劇的に変える可能性を秘めたツールです。
#01Power Automateとは
一言でいうと、Microsoft のアプリ同士をつなぐためのツール。Forms や Teams など Web 上で動くアプリ同士を連携できるのが一番の機能です。
代表的な事例:問い合わせ業務の自動化
- 人の手でもできるが、2つのアプリを行ったり来たりして確認するのは面倒。Forms に問い合わせが来たかチラチラ確認するのも、同じ内容を Teams に投稿するのも手間。
- Power Automate がバラバラの Forms と Teams をつなぐことで、回答が送信されたタイミングで自動的に Teams のチャンネルへ投稿される。
アプリ同士を連携するメリット
業務は基本的に1つのアプリケーションで完結しません。問い合わせ業務でも、Forms に問い合わせが入ったら終わり、ではなく…
- Teams でメンバーにメッセージを送る(チャットへ通知)
- 問い合わせ内容を SharePoint に記載する
- お客様に Outlook でメールを返信する
これまではバラバラのアプリをつなぐ仕組みがなかったため、Forms に何度もログインして確認し、メールは Outlook、チャットは Teams、記録は SharePoint…と人の手でアプリを使い分ける必要があり、ここで大きな手間が発生していました。
Power Automate がアプリの間に入ることで、「Forms に問い合わせが入ったら自動で Teams に投稿」だけでなく、「SharePoint に内容を記載」「Outlook で自動返信」といった仕組みも作れます。
VBA との違い:2つ以上のアプリを連携して自動化
| VBA | Power Automate(クラウドフロー) | |
|---|---|---|
| 対象 | Excel という1つのアプリに特化した自動化 | 2つ以上のアプリを連携して自動化 |
| イメージ | 1つのアプリケーションを自動化 | アプリとアプリをつなぐ |
- どの2つのアプリを組み合わせるかは自動化したい業務に応じて自分で決める(例:Forms × Teams、SharePoint × Outlook、Planner × Forms など)。
- 2つ以上のアプリを連携して自動化する、これがクラウドフローの一番の特徴。
テンプレートで「できること」を知る
テンプレート=自動化プログラムのひな形。Power Automate でできることが一覧で用意されています。
- Power Automate の管理画面左側の [テンプレート] を選択する。
- 右側に「2つのアプリを連携して何ができるか」の一覧が表示される。パラパラ見ながら自分のやりたいことを探すのも良いし、見ているだけでも勉強になる。
- 例:「Outlook.com のメールの添付ファイルを OneDrive に保存する」 を選ぶと説明文が表示されるので、内容を確認して [フローの作成] を選ぶ。
- 一瞬で自動化のプログラム(フロー)が作成される。
- テンプレートから簡単にプログラムを作れるし、ゼロから作る場合も画面の項目に従って1つずつ設定すれば作れる。既存の自動化技術より覚えることが圧倒的に少ない。
- 「2つのアプリを連携」のイメージがわきにくければテンプレートを参考にしながらいくつか作ればすぐ慣れる。実務頻出のパターンを中心に学習を続けよう。
#02もしAだったらBをする
Power Automate でプログラムを作るのに覚える構文はたった1つ。「もし A だったら B をする」です。この構文で初めてのフローを作ります。
構文の全体像:きっかけ + 処理
- もし A だったら = きっかけ(プログラムを実行するきっかけ)
- B をする = 処理(実行させたいこと)
何かしらのきっかけによって処理を実行する、これが Power Automate のプログラムの全体像です。きっかけと処理の2つを決めれば自動化のプログラムを作れる、これをまず押さえます。
| もし A だったら(きっかけ) | B をする(処理) |
|---|---|
| Forms に問い合わせがあったら | Teams にメッセージを投稿する |
| Outlook に添付ファイルがあったら | OneDrive に保存する |
| 毎週水曜のある時刻になったら | Teams にメッセージを投稿する |
「もし A だったら」=きっかけは3パターン
| パターン | 内容 | 例 | 作成画面での名前 |
|---|---|---|---|
| ① 他のアプリの動作 | 指定したアプリで何らかの処理が行われたことをきっかけに実行 | Outlook にメールが来たら/SharePoint にファイルがアップされたら/Planner でタスクが完了したら | 自動化したクラウド フロー |
| ② 日時・間隔 | 指定した日時から一定の間隔で実行 | 2024年4月1日から3日おきに/毎週水曜に/1か月おきに | スケジュール済みクラウド フロー |
| ③ 手動 | ボタンをポチッと押すイメージ | 管理画面で実行にかけたら/指定したファイルを選択したら/Power Apps のボタンを押したら | インスタント クラウド フロー |
「B をする」=処理
アプリに対して行わせたい動作を指定します(例:Teams にメッセージを投稿する/OneDrive にファイルを保存する/Planner でタスクを作成する)。「どのアプリに、どんな動作をさせたいか」が分かっていれば、画面の項目に従ってポンポンと決めるだけで作れます。
ハンズオン:Forms に問い合わせがあったら Teams へ投稿
事前準備
- Microsoft Forms で問い合わせ用フォームを作っておく(講座では「サンプルフォーム」:1. お名前/2. メールアドレス/3. 電話番号)。Microsoft 365 の管理画面(アプリ一覧)から Forms を開いて作成できる。
- 投稿先の Teams のチーム・チャネル(講座では チーム「999_テスト」、チャネル「General(一般)」)。
手順
- Google などで「Power Automate」と検索し、Microsoft の公式サイトを開く。右上の [サインイン] を選ぶと Power Automate の管理画面が開く。この先、見慣れない用語が出てくるが、現時点ではスルーで OK(#03 で解説)。まずは構文に沿って作る感覚をつかむ。
- 画面左側の [作成] を選ぶ。「フローを作成するための3つの方法」=「もし A だったら」のきっかけを決める画面が表示される。
- 他のアプリ(Forms)の動作をきっかけにしたいので [自動化したクラウド フロー] を選ぶ。
- フロー名に
問い合わせがあったら自動的に通知と入力する(フロー=自動化のプログラムのこと)。 - フローのトリガーを選択してください(=具体的なきっかけ)で、Forms に問い合わせがあったら に相当する 「新しい応答が送信されるとき(Microsoft Forms)」 を選び、右下の [作成] を押す。
- 編集画面が開き、きっかけの大枠ができる。ただしどのフォームかはまだ指定していないので、トリガー「新しい応答が送信されるとき」をクリックし、左側の フォーム ID で サンプルフォーム を選ぶ。これできっかけが完成。
- 処理(B をする)を追加する。トリガーの下の [+] → [アクションの追加] を選ぶ(アクション=処理・作業のこと)。
- 検索バーで
Teamsと検索し、Teams の[さらに表示]から 「チャットまたはチャネルでメッセージを投稿する」 を選ぶ。 - 設定項目を上から順に設定する。
項目 設定値 投稿者 フロー ボット(Power Automate の Bot から投稿) 投稿先 Channel(選ぶと Team / Channel / Message が表示される) Team 999_テスト Channel General Message 問い合わせがありました! - 画面上部の [保存] を押す。作ったプログラムを有効化するには必ず保存が必要。
- 動作確認:フォームにお名前・メールアドレス・電話番号(サンプル値)を入力して[送信] → Teams のチャネルに「問い合わせがありました!」が投稿されれば成功。
#035つの重要用語
Power Automate の編集画面には専門用語・カタカナ用語が出てきます。フローを作るうえで絶対に押さえておきたい5つの用語を整理します。
| 用語 | 意味 | 補足 |
|---|---|---|
| トリガー | =きっかけ | プログラムを実行するためのきっかけ。「もし A だったら」の部分。トリガー=引き金。 |
| アクション | =処理 | トリガーによって引き起こされる処理。Power Automate が実際に実行する作業。「B をする」の部分。 |
| フロー | =プログラム | トリガーとアクションを組み合わせて構成される自動化のプログラム全体。フロー=流れ。 |
| コネクタ | =接続口 | 各アプリごとに用意された接続口。ここに接続してアプリ内部にアクセスし、操作を自動化する。 |
| 接続 | =認証作業 | Power Automate が行うログイン(認証)作業。 |
トリガー・アクション・フロー
- これからは「フロー」という言葉を何度も使う。フロー=自動化のプログラムと頭の中で変換できるようにしておく。言葉を覚えることも大切。
コネクタと接続
- Power Automate が Teams などを操作するとき、コンセントのようなものをつないで操作を自動化している。このアプリごとの接続口がコネクタ。
- フロー作成時は、まずアプリケーションとしてコネクタを選び、その中にあるアクションを指定する、という形で作る。
- 私たちが Teams や Outlook を使うとき Microsoft アカウントでログインするのと同じく、Power Automate もアプリを操作するときには認証作業を行う。これが接続。
- 接続は、新しいアプリを操作するたびに基本的に毎回必要。ただし Power Automate が裏で自動的に行ってくれることも多く、初めのうちは意識する機会は少ない。
#04動的コンテンツ
動的コンテンツ=処理を実行することで得られる値。数値(10)や文字列(とば)と同じ「値」の一種ですが、実行するまでわからない/実行して初めてわかるという特徴があります。
動的コンテンツの概要
- 例:ユーザーが Forms で問い合わせるとき、入力される名前やメールアドレスは実際に問い合わせるまでわからない。でも Power Automate 側では、送られてくる値を元に自動化(返信など)したい。実務では「あるある」の場面。
- 処理1・処理2があるとき(トリガーでもアクションでもよい)、処理を実行して得られる値が動的コンテンツ。
- 値を取得するだけでは嬉しくない。取得した値を次の処理で使うことに意味がある。
なぜ必要?:決まりきったメッセージしか送れない問題
#02 で作った「Forms に問い合わせがあったら Teams に投稿」は便利ですが、あらかじめ作成した決まりきった(固定された・静的な)メッセージしか投稿できません。
理想は、Forms にユーザーが入力した内容(名前・メールアドレス・電話番号など)に応じて Teams に投稿する内容を変えること。前の処理(今回はトリガー)で得られた値を次の処理で使えるので、動的コンテンツでこれが実現できます。アプリ同士を連携したうえで、2つの処理の間で値をやり取りするのが動的コンテンツです。
フローの組み立て方:値を取得するアクションを「真ん中」に追加する
- トリガー「Forms に問い合わせがあったら」だけでは、ユーザーの問い合わせ内容は取得できない。トリガーはあくまで問い合わせが来たかどうかを判断するきっかけに過ぎないから。
- 問い合わせ内容を取得するには、間にもう1つ「応答の詳細を取得する」アクションを追加する必要がある。
- きっかけ(トリガー)は1つだけだが、その後に続く処理(アクション)は何個でも追加できる。今回は「きっかけ1つ+処理2つ」の計3つ。
ハンズオン:問い合わせ内容を元に Teams へ投稿
- Power Automate のトップ画面左側の [作成] → [自動化したクラウド フロー] を選ぶ。
- フロー名:
問い合わせ内容を元に投稿、トリガー:「新しい応答が送信されるとき(Microsoft Forms)」 を選んで [作成]。 - トリガーをクリックし、フォーム ID で サンプルフォーム を選ぶ(トリガー完成)。
- トリガー下の [+] → [アクションの追加]。検索バーに
Formsと入力し、Microsoft Forms の 「応答の詳細を取得する」 を選ぶ。
このアクションを使って初めて、フォームに入ってくる具体的な回答内容を取得できる。 - 左側の設定画面で以下を設定する。
項目 設定値 フォーム ID サンプルフォーム(どのフォームの回答を取得するか) 応答 ID 動的コンテンツ 「応答 ID」(トリガー「新しい応答が送信されるとき」から取得) 応答 ID とは:フォームに入ってくる問い合わせ内容1件1件を一意に識別するために割り当てられている ID。ここに具体的な回答の ID を指定する必要があり、ここで動的コンテンツが必要になる。
操作:応答 ID の欄をクリック → 右側の 雷マーク(⚡) を選ぶ → 1個前の処理(新しい応答が送信されるとき)で取得できる値が表示されるので 「応答 ID」 を選ぶ。
Forms に入ってくる問い合わせ内容1件ごとに ID が割り当てられている 雷マークから動的コンテンツを使える - [+] → [アクションの追加] で
Teamsを検索し、「チャットまたはチャネルでメッセージを投稿する」 を選ぶ。 - 投稿内容を設定する。
項目 設定値 投稿者 フロー ボット 投稿先 Channel Team 999_テスト Channel General Message Formsから問い合わせがありました!と入力した後、雷マーク(⚡)から「応答の詳細を取得する」の動的コンテンツ お名前 → 電話番号 → メールアドレス を1つずつ挿入Message に動的コンテンツ(お名前・電話番号・メールアドレス)を挿入 - 画面上部の [保存] を押す(フローを有効化するには保存が必須)。
- 動作確認:フォームに名前・メールアドレス・電話番号(サンプル)を入力して送信 → Teams に「Formsから問い合わせがありました!」の後ろに入力した値が埋め込まれて投稿される。
- 前の処理で取得した値は、雷マーク(⚡)を選べば簡単に表示・選択できる。動的コンテンツは今後何度も出てくるので使い方に慣れておく。
- Forms に関するフローを作るときは、必ず「応答の詳細を取得する」アクションをセットで使う。
ほかの活用場面
- Outlook にメールが来たら → そのメールの件名を元に Planner でタスクを作成する。
- SharePoint にファイルがアップされたら → SharePoint のファイル名を取得してそのまま Teams に通知する。
#05テンプレートの使い方
テンプレート=自動化プログラム(フロー)のひな形・サンプル集。Power Automate でできることが一覧で用意されており、うまく使えばやりたいことを一瞬で実現できます。クラウドフローを使ううえで最も重要なポイントです。
上級者はテンプレート同士をくっつけ、中身をちょっと編集して新しいフローをさっと作り上げるのが上手です。
① 基本の使い方
- Power Automate のトップ画面左側の [テンプレート] を選ぶ。Microsoft が提供するテンプレートが一覧表示される(数千種類以上あると言われる)。
- やりたいことに合うテンプレートを選ぶ(例:「選択したファイルに対するカスタム アクションを完了する」)。どんなアプリを使い、どんな動作をするかの説明画面が表示される。
- 下へスクロールすると、フローの接続先として使うアプリケーションが表示される。Power Automate から操作するには接続(=サインイン)が必要なので、画面右側でサインインを済ませる。
- [続行] を選ぶと、一瞬でフローが作成される。
注意:抜けている項目は自分で設定する
例:テンプレート 「Microsoft Forms から Planner でタスクを作成し、Teams でメッセージを投稿する」(Forms に問い合わせが入ったら Planner でタスク作成+Teams に投稿する、問い合わせ業務の自動化テンプレート)。
- 選ぶと説明・接続先アプリ・サインイン情報が表示される。[続行] を押すと、さらに新しい設定画面が表示され、監視対象のフォーム ID、タスクを作成する計画、Planner タイトルなどを設定するよう求められる。
- テンプレートはフローの大枠を作ってくれるだけ。どのフォームで受け付けるか、どんなタスクを作るか、どこに投稿するか等のアクションの細かい中身は自分で決める必要がある。0から10まで全部作ってくれるわけではない。
- 設定画面で全項目を入力して [作成] を押せば作成できる。設定画面がわかりづらければ [詳細設定モードで編集] を選ぶと、いつものフロー編集画面でアクションを1つずつ設定できる。
② テンプレートの検索方法(実務ですぐ使える3つ)
数千種類の中からやりたいことを素早く見つけ出すのがポイントです。
1. 検索バーの使い方
- テンプレート画面上部の 「テンプレートの検索」 バーで検索するのが基本。
- 検索するワードによって検索結果が微妙に異なる。例:メール関連を自動化したいとき
メール→ テンプレートのタイトルに「メール」が入っているものが表示される(関係ないものも少し混ざる)。Outlook→ テンプレートにOutlook のアプリケーションが入っているものが表示される。
- なかなか見つからないときは、「メール」「Outlook」「問い合わせ」など色々な角度のワードで検索すると見つけやすい。
2. 業務軸による検索
- 検索バーの下のタブ(トップピック/自分と共有/リモート作業/承認/ボタン/Visio/データ コレクション/メール…)で、業務ごとにまとまったテンプレートを確認できる。例:承認作業を自動化したい → [承認] を選ぶ。
- 画面右側のプルダウン(▼)を開くと、表示されている以外のカテゴリも選べる。特に「通知」(自動で通知が来るフロー)と「同期」(アプリ間でデータを同期するフロー)は実務でよく使われる。
3. コネクタによる検索
- アプリケーション(コネクタ)ごとにテンプレートを探す方法。結果自体は他の方法と大きく変わらないが、コネクタごとのトリガーを確認できるなど、アプリ軸でより細かく探せる。
- テンプレート画面を離れ、左側の [作成] を押す。「フローを作成するための3つの方法」(=0から作る)の下に 「テンプレートから開始する」、さらに下に 「コネクタから始める」 がある。
- 右下の [すべてのコネクタ] を選ぶと、コネクタが一覧で表示される。
- 例:SharePoint を選ぶ → 上部に SharePoint のトリガー(アイテムが作成されたとき、ファイルが削除されたとき など)、その下に SharePoint 関連のテンプレートが表示される。
③ 編集のポイント:アクションのコピー&ペースト
やりたいことと全く同じテンプレートがないときは、既存のテンプレート同士をくっつけ、中身を編集してフローを作ります。
ハンズオン:問い合わせ業務の自動化
- ゼロから作るのは大変なので、似たテンプレートを探す。テンプレートの検索で
Formsと検索し、「Microsoft Forms から Planner でタスクを作成し、Teams でメッセージを投稿する」 を選ぶ。 - 接続先(Microsoft Forms・Planner・Microsoft Teams)を確認して [続行]。
- 設定画面で各項目を設定し [作成] を押す。
項目 設定値(講座の例) 監視対象のフォームの ID サンプルフォーム Microsoft Forms フォーム ID サンプルフォーム タスクを作成する計画 ユースフルタスク管理_FY24-3(Planner のプラン) Planner タイトル 問い合わせ業務への対応メッセージの投稿先のチーム 999_テスト メッセージの投稿先のチャネル General サンプルフォームには名前・メールアドレス・電話番号の3つが入力される。ここで入力されるメールアドレスを、後で Outlook のメール返信に使う。 - 一瞬でフローが作成される。左上の [編集] から中身を確認できる。
- 最後に Outlook でメールを返信する処理を追加したい。自分でアクションを追加してもよいが、似たテンプレートから探す方が楽。もう1つ Power Automate の画面(タブ)を開き、テンプレートの検索で
Forms→ 「Microsoft Forms で応答が送信されると応答者にメールを送信する」 を選び、[続行]。 - このフロー全部は不要で、メールを送信する部分(Send an email (V2))だけ使いたい。アクションは1つ単体でコピー&ペーストできる。対象アクションを右クリック → [アクションのコピー]。
- 元のフローに戻り、Teams のアクションの下の [+] → [アクションの貼り付け]。Outlook でメールを送信するアクション(Send an email (V2) copy)が貼り付けられる。
- 貼り付けたアクションの中身を設定する。
項目 設定値 宛先 動的コンテンツ メールアドレス(応答の詳細を取得 から。フォームに入力された内容を元に返信) 本文 問い合わせがありました!完成したフロー(Create a task → Post message → Send an email (V2) copy) - [保存] を押す。
- 動作確認:サンプルフォームに名前・自分の Outlook アカウントのメールアドレス・サンプルの電話番号を入力して送信。
- Planner:更新すると「問い合わせ業務への対応」タスクが作成されている
- Teams:999_テスト にメッセージが投稿されている
- Outlook:「問い合わせがありました!」のメールが届いている
- テンプレートからやりたいことをうまく検索し、アクションを継ぎはぎしていけば、本格的な業務自動化フローも簡単に作れる。
- テンプレートはスマホ版 Power Automate アプリからも一覧で確認できる。電車の中などのスキマ時間に眺めるとすごく勉強になる。
#06スケジュール済みクラウドフローの使い方
毎日データを更新する、週1回リマインドを送る、月1回データを集計する…。こうした定期的に発生する繰り返し作業は、スケジュール済みクラウドフローで簡単に自動化できます。「もし A だったら」の3つのきっかけ(トリガー)のうち「日時・間隔」にあたるものです。
仕組み:開始日 + 間隔
| 開始日 | 間隔 | 実行のされ方 |
|---|---|---|
| 4/8 | 1日 | 4/8 から1日おき=毎日実行 |
| 4/8 | 1か月 | 4/8 から1か月おき=毎月実行(4/8、5/8、6/8、7/8…と翌月の同じ日) |
| 4/8 | 毎週水曜 | 開始日に最も近い水曜日(4/10)から毎週水曜実行 |
細かい実行時刻なども決められます(画面で確認)。
ハンズオン:毎週金曜にフローを定期実行する
- 画面左側の [作成] → [スケジュール済みクラウド フロー] を選ぶ。
- フロー名:
毎週金曜に実行 - その下の 開始日 と 繰り返し間隔 が、スケジュール済みクラウドフローで決めるべき2つの項目。
- 開始日:フローを開始させる日付。デフォルトはフローを作成している日付の午前10時(講座では 2024/5/5 10:00 AM)。作ったフローはすぐ使いたいことがほとんどなので、開始日を変えたい特殊なケースを除きそのままで OK。
- 繰り返し間隔:フローを実行させる頻度。デフォルトは 1 分(1分おき)。「1 日」なら毎日、「1 か月」なら 5/5・6/5・7/5 と毎月実行。今回は毎週金曜なので 「1」「週間」 にする。
- 「週間」にすると 設定曜日 が表示されるので、金 だけを選択する。右下の [作成]。
- 編集画面が開き、トリガー(Recurrence)の大枠ができる。ただし何時に実行するかはまだ決めていないので、トリガーをクリックして詳細設定を開く。
- 上から順に設定を確認・入力する。2つの落とし穴に注意(間違える人がとても多い)。
項目 意味 設定値 Interval / Frequency 実行する頻度(Interval=間隔、Frequency=頻度)。作成時の設定が反映されている 1 / 週 Time Zone 落とし穴① 実行時刻がどの地域の時間帯か (UTC+09:00) 大阪、札幌、東京 Start Time 落とし穴② フローの開始日時(作成時の開始日が反映) 末尾の Z を削除(例: 2024-05-05T01:00:00.000Z→2024-05-05T01:00:00.000)On These Days 何曜日に実行するか 金曜日(チェックを確認) At These Hours 何時に実行するか 17At These Minutes 何分に実行するか 00Time Zone を「(UTC+09:00) 大阪、札幌、東京」に設定 Start Time の末尾の「Z」に注目 設定後。プレビューに「17:00 Friday 毎週 に実行」と表示される - アクションを追加する(今回は処理づくりが目的ではないのでサクッと)。[+] → [アクションの追加] →
Teamsで検索 → 「チャットまたはチャネルでメッセージを投稿する」。投稿者:フロー ボット/投稿先:Channel/Team:999_テスト/Channel:General/Message:Hello World ! - [保存] を押し、前のページ(フローの詳細)に戻ると「フローを開始する準備ができました。有効化済みトリガーによって実行します」と表示される。これで毎週金曜17時に自動実行される。スケジュール済みクラウドフローはすぐに実行されるわけではないのでピンとこないかもしれないが、このように「実行可能な状態になった」ことを確認できる。
- Time Zone の設定忘れ:設定しなくてもフローの保存はできてしまうため、「保存できたのに実行されない」というミスが非常に多い。Time Zone が正確でないとスケジュール済みクラウドフローは正しく動かない。必ず「大阪、札幌、東京」を選ぶ。
- Start Time の「Z」:末尾に Z があると協定世界時(UTC)として認識され、ロンドンの時間帯になってしまう。これも「保存したのに実行されない」原因になる。Z は必ず消す。
…T01:00:00.000Z と表示されます。Z を消すと開始日時は日本時間の 01:00 と解釈されますが、実際の実行時刻は At These Hours / Minutes(17:00)で決まります。#07ファイルがUPされたら自動で通知(SharePoint)
「提出されたファイルをチェックする」業務では、ファイルがアップされないと自分の作業ができず、何度もフォルダをチラチラ確認しに行くことになりがち。そこでファイルがアップされたら自動で通知が飛ぶ仕組みを作ります。
組織内のファイル共有でよく使われる SharePoint を題材にしますが、Google ドライブ・OneDrive・Dropbox・Box などにも応用できる考え方です。
事前準備:SharePoint とライブラリ
SharePoint=組織内で情報を共有するためのツール。Web 上のポータルサイトにチームメンバーがアクセスし、ファイルを置いたり、表形式で情報を管理したりできます(業務で使っている人は軽く流し見で OK)。
今回使うのは ライブラリ(=チームのメンバー全員がアクセスできるファイル置き場)。
ライブラリの作り方
- ポータルサイト(講座では「999_テスト」)のトップ画面で [+ 新規] → [ドキュメント ライブラリ] を選ぶ。
- [空のライブラリ] を選び、名前に
サンプルライブラリと入力して右下の [作成]。 - 「サンプルライブラリ」ができる。ここにメンバーがファイルをアップしたら Teams に自動通知が飛ぶ仕組みを作る。
(参考)SharePoint のサイト(ポータルサイト)の作り方
- Google 検索、または Microsoft 365 のトップ画面左上のアプリ一覧から SharePoint を開く。
- SharePoint のトップで左上の [+ サイトの作成] を選ぶ。
- 「チーム サイト」と「コミュニケーション サイト」が表示される。チーム内で情報共有するサイトは [チーム サイト](左側)を選ぶ。
- テンプレートは [標準チーム] を選び、確認画面で [テンプレートを使用]。
- サイト名を入力(何でもよい。例:
sample)し、使用できることを確認して [次へ] → [サイトの作成]。 - メンバー追加画面は練習用なら追加不要。[完了]。サイトができたら、上と同じく [新規] からライブラリを作成しておく。
ハンズオン:ファイルがアップされたら Teams に通知
- Power Automate のホーム画面で [作成] → [自動化したクラウド フロー](他のアプリの動作をきっかけにする)。
- フロー名:
ファイルがUpされたら通知 - トリガーは「SharePoint のライブラリにファイルがアップされたら」なので、一覧に表示されない。検索バーで
SharePointと検索し、「ファイルが作成されたとき (プロパティのみ)」 を選んで [作成]。このトリガーでライブラリにファイルがアップされたかを判定できる。 - トリガーで決めるべきことは2つ。
項目 設定値 サイトのアドレス 999_テスト(https://…sharepoint.com/sites/999_37) ライブラリ名 サンプルライブラリ - [+] → [アクションの追加] →
Teamsで検索 → 「チャットまたはチャネルでメッセージを投稿する」。項目 設定値 投稿者 フロー ボット 投稿先 Channel Team 999_テスト Channel General Message ファイルがUpされました! - 上部の [保存] を押す(押さないとフローが有効化されない)。「フローを開始する準備ができました」と表示されれば OK。
- 動作確認:デスクトップのテキストファイル(講座では sample.txt)をサンプルライブラリにアップロード → 少し経つと Teams に「ファイルがUpされました!」が投稿される。
- SharePoint と Teams の2つのアプリを連携させれば、わざわざ SharePoint のサイトに行って中身を確認しなくても、Teams のチャネル上でファイルのアップを確認できる。
- 今回は「ファイルがアップされたかどうか」だけで処理を実行したが、今後知識を加えると「誰がアップしたか」「どんなファイル名か」などで判定することもできる。
#08特定のメールを自動通知(Outlook)
Outlook と Teams を使い分けていると、普段 Teams ばかり見てメールのチェックが後回しになり、重要な連絡を見落としがち。そこで特定のメールが来たら Teams に自動で通知する仕組みを作ります。
ハンズオン
- Power Automate のトップ画面左側の [作成] → [自動化したクラウド フロー](他のアプリの動作をきっかけにする)。
- フロー名:
メールがきたら通知 - トリガーの検索バーで
Outlookと検索し、「新しいメールが届いたとき (V3)」(Office 365 Outlook) を選んで [作成]。特定のメールが来たタイミングで処理を実行できる。 - トリガーをクリック。一見設定項目がなさそうに見えるが、[すべてを表示](詳細パラメーター)を選ぶと詳細設定が開く。
- 項目はいろいろあるが、まずは 差出人(誰から来たか)と 件名フィルター(どんなタイトルか)の2つを設定すれば間違いない。
項目 設定値 ポイント 差出人 通知したい相手のメールアドレス(講座では講師の個人用アドレス) [カスタム値の入力]を選ぶとベタ打ちで入力できる 件名フィルター 月データ完全一致でなくてよい(部分一致)。件名に含まれる文字列で検索できる 差出人と件名フィルターを設定する 実務で来るメールは「4月データ」「5月データ」「6月データ」のように、正確な件名がわからないことがほとんど。件名フィルターは部分一致なので「月データ」と入れておけばどれにも反応する。他にも、宛先(To/CC)、添付ファイルがあるか、重要度など細かい条件を設定できるが、まずは差出人と件名の2つを押さえる。
- [+] → [アクションの追加] →
Teamsで検索 → 「チャットまたはチャネルでメッセージを投稿する」。項目 設定値 投稿者 フロー ボット 投稿先 Channel Team 999_テスト Channel General Message メールがきました! - [保存] を押す(保存しないとフローが有効にならない)。
- 動作確認:差出人に設定したアカウントから、自分の Outlook 宛に件名「4月データ【確認をお願いします】」、本文「テストメールです!」のメールを送信 → Teams に「メールがきました!」が自動投稿される。
#09メールの添付ファイルを自動保存(OneDrive)
注文書・請求書・見積書などをメールでやり取りしていると、添付ファイルの保存は1回数十秒でも毎回だと面倒。月末などの繁忙期は保存漏れのチェックやファイル整理に時間を取られます。そこでOutlook のメールに添付ファイルがあったら OneDrive に自動保存するフローを作ります。
事前準備:OneDrive for Business に保存先フォルダを作る
今回は個人向けの OneDrive ではなく、法人向けの OneDrive for Business を使います(企業内・組織内で共有できる)。
- 組織アカウントでログインした Microsoft 365 の画面で、左上のアプリ一覧から OneDrive を選ぶ。
- [自分のファイル] → [+ 新規追加] → [フォルダー]。
- 名前に
添付ファイルを自動保存と入力して [作成]。
ハンズオン
- [作成] → [自動化したクラウド フロー](Outlook からのメールを起点にする)。
- フロー名:
添付ファイルを自動保存。トリガーの検索バーでOutlook→ 「新しいメールが届いたとき (V3)」 を選んで [作成]。 - トリガーを選択し [すべてを表示]。添付ファイルがあるかどうかで判定したいので、設定すべき項目は2つ。
項目 設定値 意味 添付ファイルを含める はい Outlook のメールについてくる添付ファイルを処理対象にできる(この後 OneDrive へ保存するために必須) 添付ファイル付きのみ はい 添付ファイルがあるときだけフローを実行する 差出人 任意のメールアドレス(講座では講師の個人用アドレス) 誰からのメールで動作させるか(参考設定) 「添付ファイルを含める」「添付ファイル付きのみ」の2か所を「はい」にする 添付ファイルを処理対象とし、添付ファイルがあったときだけ実行するには、2か所とも必ず「はい」に設定する。 - [+] → [アクションの追加] →
OneDriveで検索 → OneDrive for Business(法人向け OneDrive のコネクタ)の[さらに表示]→ 一番上の 「ファイルの作成」。Excel ブック・PDF・テキストなど何でも OneDrive 内にファイルを作成できるアクション。 - 設定項目を上から順に設定する。
項目 設定値 フォルダーのパス 右のフォルダアイコン(フォルダーを開く)から /添付ファイルを自動保存 を選ぶ(どこに保存するか) ファイル名 雷マーク(⚡)→[表示数を増やす]→ 動的コンテンツ 添付ファイル 名前(Outlook に添付されたファイル名をそのまま使う) ファイル コンテンツ 雷マーク(⚡)→[表示数を増やす]→ 動的コンテンツ 添付ファイル コンテンツ(添付ファイルそのものをコピー) ファイル コンテンツに「添付ファイル コンテンツ」を選択 - ファイル名に動的コンテンツを入れると、「ファイルの作成」の周りに For each が自動で追加される。For each とは? メールの添付ファイルは1つとは限らず、複数あることも多い。複数の添付ファイルそれぞれに作成(コピー)処理を行うための繰り返し処理で、Power Automate が自動的に追加してくれたもの。あまり深く考えずスルーで OK。
- [保存] を押してフローを有効化する。
- 動作確認:差出人に設定したアドレス(講座では個人の Gmail)から Excel ブック(添付ファイル.xlsx)を添付してメールを送信 → OneDrive のフォルダを何回か更新すると、Excel ファイルが自動保存されている。
- メールの添付ファイルの設定は少しややこしいが、動的コンテンツを使えば、前のメールで届いた添付ファイルを簡単に処理対象にできる。
- シンプルなフローでも、こういったフローを2〜3個持っているだけで日々の生産性はまったく違う。
#10Excelの書き込み(Excel Online)
業務で最もよく使われるアプリ Excel を Power Automate から操作します。Power Automate の管理画面で実行ボタンを押したら、SharePoint 内の Excel に値を書き込むフローを作ります。
Excel を操作するときの2つの注意点
- クラウドフローで扱える Excel は Web 版の Excel のみ。具体的には SharePoint または OneDrive 上にある Excel ブック。
- クラウドフローは Web アプリ同士を連携して自動化するための技術で、デスクトップアプリの操作を目的としていないため。デスクトップや PC 内のフォルダにある Excel ブックは操作できない。
- ワークシート上の表から、セル A1・B2 のようにセルをピンポイントで指定して操作することはできない。
- Power Automate はまずワークシート内のテーブルがどこにあるかを認識し、見つけたテーブルの中のデータを読み書きする仕組みだから。テーブルがないと操作できない。
- 特に Excel 帳票(請求書・注文書など)に注意。帳票の中にはテーブルが存在しないので操作できない。操作したい場合は、あらかじめテーブルのデータを用意し、そのテーブルに対して処理をかける必要がある。
事前準備:SharePoint 上の Excel をテーブルにする
- SharePoint のサンプルライブラリに サンプル.xlsx を用意しておく(列:名前・日付・記号・数値)。表はあってもテーブル形式でないと操作できない。
- 表を選択し、Excel の [挿入]タブ → [テーブル] でテーブルに変換する。
テーブルに変換した状態(テーブル1)
ハンズオン:テーブルに行を追加して書き込む
- Microsoft 365 のアプリ一覧から Power Automate を開き、[作成] → 実行ボタンをポチッと押したら実行したいので [インスタント クラウド フロー]。
- フロー名:
Excelへの書き込み、トリガー:「フローを手動でトリガーする」 を選んで [作成]。トリガーには特に設定項目はない。 - [+] → [アクションの追加] →
Excelで検索。Excel Online (Business) コネクタ(OneDrive for Business または SharePoint 内の Excel ブックを操作できる)の[さらに表示]から 「表に行を追加」 を選ぶ。テーブルに行を追加する形で新しい値を書き込める。 - 設定項目を上から設定する。
項目 意味 設定値 場所 ブックがある場所(OneDrive for Business か SharePoint のどのサイトか) Group - 999_テスト ドキュメント ライブラリ SharePoint のどのライブラリか サンプルライブラリ ファイル フォルダーアイコン(フォルダーを開く)から選ぶ /サンプル.xlsx テーブル ブック内のどのテーブルを操作するか(テーブル名で指定。名前がわからなくても自動で探してくれる) テーブル1 - 何を書き込むかを決める。詳細パラメーター の [すべてを表示] を選ぶと、名前・日付・記号・数値 の欄が表示される。Power Automate がテーブルの列名を自動で認識してくれるので、列ごとに値を入れるだけ。
列 書き込む値(何でもよい) 名前 鳥羽日付 2024/1/1記号 ABC数値 123 - [保存] → 前のページに戻り [実行]。使用するアプリ(接続)を確認して [続行] → [フローの実行]。「フローの実行が正常に開始されました」と表示される。
- Excel を確認すると、テーブルの下に指定した値の行が追加されている。
- Excel に値を書き込むときは 「表に行を追加」 アクションを使う。
- 操作対象のブック指定は少し難しいが、OneDrive for Business か SharePoint かを選んでから、テーブルを元に操作する点を覚えておく。
- 2つの注意点(オンライン上の Excel のみ/テーブル形式のみ)を必ず意識する。
補足:テーブル化していない Excel や複雑な操作は Office Scripts
- テーブル形式でない Excel(帳票など)を扱いたい、Excel コネクタにない複雑な操作をしたい場合は、Office Scripts(Web 版 Excel の VBA マクロのようなもの)を使い、Power Automate と連携して実行する。
- 流れ:トリガーが発動 → Office Scripts で Excel を操作する複雑な処理を実行 → Excel を自動化。
- Power Automate はあくまで Web アプリ同士を連携する仕組み、Office Scripts は Web 版 Excel を自動化する仕組み。
#11Excelの読み込み(SharePointリストへの転記)
今回は Excel のワークシート上のデータを読み込み、それを SharePoint リストにインポートするフローを作ります。
隠れた主役は SharePoint リスト。Power Automate や Power Apps(Power Platform)で自動化・アプリ開発をするとき、データソースとして使われるのは Excel ではなく SharePoint リストです。
SharePoint リストとは
SharePoint のサイト内で扱えるデータベース形式の表。行と列で構成されるテーブル構造の表です。
リストの作り方
- SharePoint サイトの [ホーム] → [+ 新規] → [リスト]。
- [空白のリスト] を選び、名前(例:
お試しリスト)を入力して [作成]。 - データを追加するには [+ 新しいアイテムを追加]。既存の列に対して新しいデータを追加できる。
- 列を追加するには [+ 列の追加] → 列で扱うデータの種類を指定し、名前などを付けて作成する。
なぜ Excel ではダメなのか
SharePoint リストは Excel に比べて操作しづらく感じますが、これから自動化を学ぶ人にはぜひ SharePoint リストに慣れてほしいというのが講師からのお願いです。
| Excel | SharePoint リスト | |
|---|---|---|
| 本質 | 表計算ソフト:データを集計・分析するのが目的 | データベース:テーブル構造でデータを保存・管理するのが目的 |
| 特徴 | データを自由に扱える(データ保存用ではない) | 自由度は低いが、誰が作っても必ずテーブル形式でデータが保持される |
SharePoint リストのメリット:正確にデータを保持できる/他のアプリと連携できる/権限の管理ができる/ビューを変えられる/データ型を指定できる/同時編集が可能 など。
ハンズオン
事前準備
- OneDrive for Business のフォルダ「インポートするExcelブック」に サンプル.xlsx(列:名前・日付・記号・数値のテーブル形式の表、テーブル名「テーブルA」)を用意。
- SharePoint サイト 999_テスト に サンプルリスト(列:名前・日付・記号・数値)を用意。
① Excel のデータを読み込む
- [作成] → [インスタント クラウド フロー]。フロー名:
Excelの読み込み(SharePointリストへの転記)、トリガー:「フローを手動でトリガーする」 → [作成]。 - [+] → [アクションの追加] →
Excel→ Excel Online (Business) の[さらに表示]→ 「表内に存在する行を一覧表示」。これで Excel のテーブル上のデータを読み込める。なぜ「行」? テーブル=データベースを扱っているから。データベースの世界ではセルをピンポイントで指定するのではなくレコード(行)単位で操作する。「行を一覧表示」=全データ(全行)を取得する、と考えるとわかりやすい。× セルをピンポイントで指定(表計算ソフトの世界)/○ 行(レコード)単位で操作(データベースの世界) - 設定項目:
項目 設定値 場所 OneDrive for Business ドキュメント ライブラリ OneDrive ファイル フォルダーを開く → /インポートするExcelブック/サンプル.xlsx テーブル テーブルA(Power Automate が自動で探してくれる)
② SharePoint リストに登録する
Excel から読み込んだ文字・数値・日付をそのまま投げても、SharePoint リスト側でうまく登録できなかったりエラーになったりする。SharePoint リストはデータベースなので、正しいデータの種類でないと登録できない。特に日付と数値に注意。
- [+] → [アクションの追加] →
SharePoint→ [さらに表示]→ 「項目の作成」。SharePoint リストに新しいアイテム(項目)を追加・作成できる。 - サイトのアドレス:999_テスト、リスト名:サンプルリスト。詳細パラメーター の [すべてを表示] を選ぶと、リスト内の列(名前・日付・記号・数値)が表示される。
- 名前・日付・記号の欄に、雷マーク(⚡)から「表内に存在する行を一覧表示」の動的コンテンツ 名前・日付・記号 をそれぞれ入れる。
1つ前のアクションで取得したテーブルのデータを動的コンテンツで選べる - 数値の欄にも「数値」を入れたいが、動的コンテンツに数値が見当たらない。
理由 「表内に存在する行を一覧表示」で取得したデータは自動的に文字列に変換される。Excel では数値(541)でも、取得後は文字列の "541" になる。SharePoint リストの列の種類が「数値」だと、文字列は登録できない。→ 文字列を数値に変換する必要がある。
- int 関数で文字列 → 数値に変換する。数値の欄をクリック → 動的コンテンツの下の fx(式の挿入) を選ぶ →
int(と入力し、括弧内に動的コンテンツ「数値」を挿入 → [追加]。int(item()?['数値']) - 「項目の作成」を作っている途中で For each が自動挿入される。表内のすべてのデータ(行)を繰り返し SharePoint リストに登録してくれる繰り返し処理(詳しくは別の動画で。今は頭の片隅に入れておけばOK)。
③ テストで動作確認 → エラー → 修正
- [保存] → 右上の [テスト](新しいテクニック:作ったフローを実際に動かして確かめられる)。[手動] → [テスト] → 接続確認で [続行] → [フローの実行] → [完了]。フローの実行状況を追える。
- エラーになった。内容を見ると「String/DateTime」=日付データの入力でエラーが起きている。原因 「表内に存在する行を一覧表示」で取得した Excel の日付が文字列(シリアル値。例:
45292)に変換され、それを日付列に入れようとしたため。→ 「このデータは日付ですよ」と Power Automate に伝える必要がある。 - 右上の [編集] で編集画面に戻り、「表内に存在する行を一覧表示」の 詳細パラメーター → [すべてを表示] → DateTime 形式 を ISO 8601 に設定する。シリアル値ではなく日付形式で値を取得できる。
- もう一度 [保存] → [テスト] で実行 → SharePoint リストを更新すると、Excel のデータが登録されている。
- SharePoint リストに登録するときはデータの種類に気をつける(数値 →
int()、日付 → DateTime 形式を ISO 8601)。 - フローの大きな流れは合っていても、細かい部分で思い通りに作れないことはある。少しずつ機能を追加しながら動きを確かめる。初めから100%正しいものを作ろうとせず、まずは最低限の機能に絞って作ってみる。試行錯誤を重ねながらフローを作ろう。
#12SharePointリストの操作
SharePoint リストで案件・プロジェクトを管理しているとき、ステータスが変わったら自動で通知したり、他の人にタスクを割り当てたりできればスムーズ。リストの値が変更されたら Teams へメッセージを送るフローを作ります。
使うリストと作るフロー
SharePoint サイト 999_テスト の サンプルリスト2(列:名前・日付・記号・数値・ステータス[未着手/作業中/完了])を使います。
| フロー | 内容 | |
|---|---|---|
| ① | リストが変更されたら通知 | リストに何らかの変更(追加・修正)があったら通知を送る |
| ② | 完了になったら通知 | ステータス列の値が「完了」になったときだけ通知を送る(条件分岐) |
フロー①:リストに変更があったら通知
- [作成] → [自動化したクラウド フロー]。フロー名:
リストが変更されたら通知 - トリガー検索で
SharePoint→ 「アイテムが作成または変更されたとき」 を選び [作成]。トリガー 動作 アイテムが作成または変更されたとき(今回使用) リストにデータが追加されたとき、または修正されたときに実行 アイテムまたはファイルが修正されたとき(似ているので注意) リストのデータが変更された場合のみ実行 - トリガーで決めるのは2つ:サイトのアドレス=999_テスト、リスト名=サンプルリスト2。
- [+] → [アクションの追加] →
Teams→ 「チャットまたはチャネルでメッセージを投稿する」。今回は個人宛てに送る。項目 設定値 投稿者 フロー ボット 投稿先 Chat with Flow bot Recipient 自分の Microsoft アカウント(メールアドレス) Message 雷マーク(⚡)→ 動的コンテンツ 名前 + さんのデータに変更がありました!テクニック 「変更があったよ」だけでなくどのデータに変更があったかもわかると便利。トリガー「アイテムが作成または変更されたとき」の動的コンテンツ(名前・日付・記号・数値など)は、変更があったデータの値を取得してくれるので、メッセージに埋め込めば変更箇所もわかり確認がスムーズ。 - [保存](有効化に必須)。
- 動作確認①(修正):鈴木さんの数値を 847 → 8470 に変更 → 少し時間がかかるが Teams に「鈴木裕美さんのデータに変更がありました!」。
- 動作確認②(追加):[+ 新しいアイテムを追加] で名前に自分の名前を入れてデータを追加 → 同様に「鳥羽さんのデータに変更がありました!」が届く。
案件管理によく使われる SharePoint リストを元に、通知やタスクの割り当てなどを Power Automate で自動化できます。
条件分岐とは
ある条件が成立した場合と成立しなかった場合とで、処理を切り分けること。言葉は難しそうでも考え方はシンプルです。
- 例:もし天気が晴れだったら → お外に出かける / そうでなかったら → 傘を持っていく
- 今回:もし変更されたリストのステータス列の値が「完了」だったら → 通知を送る / そうでなかったら → 何もしない
フロー②:ステータスが「完了」になったら通知
- フロー名:
完了になったら通知。トリガーは①と同じく 「アイテムが作成または変更されたとき」、サイト:999_テスト、リスト:サンプルリスト2。 - [+] → [アクションの追加]。条件のアクションは少し特殊な場所にある:ランタイム で [組み込み] を選ぶ → Control コネクタ(フローの動きを制御するアクションが入っている)→ 「条件」。
- 左側で条件を設定する。「天気」と「晴れ」のように、2つの値を比較して判定するだけ。
左の値 演算子 右の値 動的コンテンツ ステータス Value(トリガーで変更されたステータス列の値) is equal to(~と等しい) 完了ステータス列の値が「完了」と同じならば True へ - True 側の [+] → [アクションの追加] → 「チャットまたはチャネルでメッセージを投稿する」。①と同じく Chat with Flow bot・自分宛て、Message は動的コンテンツ Title(名前) +
さんのステータスが"完了"になりました! - False 側(条件に当てはまらない場合)は何もしないので、アクションは追加しなくてよい。
- [保存] → SharePoint リストで鈴木さんのステータスを「完了」に変更 → 少し経つと Teams に「鈴木裕美さんのステータスが"完了"になりました!」。
- 2つの値を比較すれば、簡単に処理を分岐するフローを作れる。より細かなリストの判定ができる。
- 条件分岐は、実務で使う分には詳しい部分まで知らなくても大丈夫。基本的な仕組みを理解しているだけで十分フローの中で活用できる。
- 目的はプログラミングのプロになることではなく、Power Automate を業務で活用すること。ポイントに絞って学習を続けよう。
#13ファイルをPDFに変換(メニューから実行)
資料を社内外に共有するとき、Excel・Word・PowerPoint で作った資料を PDF に変換してアップすることが多いはず。共有のたびに資料を開いて PDF で保存し直し、アップするのは手間です。PDF への変換とアップロードの2つの作業を自動化します。
今回の概要
- OneDrive for Business の「自分のファイル」に 資料_PDFに変換 フォルダを用意(中身:Excel_資料.xlsx、PowerPoint_資料.pptx、Word_資料.docx)。このうちどれかを選択したら、その資料を PDF に変換する。
- 変換した PDF を SharePoint サイト 999_テスト の サンプルライブラリ にアップする。
- OneDrive for Business でファイルを右クリック → [自動化]を開くと、OneDrive for Business に関するフローを直接実行できる。Power Automate の管理画面を開かなくてもアプリ内から直接実行できる、Microsoft 365 とのアプリ連携がスムーズな Power Automate ならではの機能。
ハンズオン
- [作成] → ボタンをポチッと押すイメージで実行したいので [インスタント クラウド フロー]。フロー名:
ファイルをPDFに変換 - トリガーは 「選択したファイルの場合」(OneDrive for Business) を選び [作成]。OneDrive for Business 内で選択したファイルに対してアクションを実行できる。トリガーには特に設定項目はない。
- [+] → [アクションの追加] →
OneDriveで検索 → OneDrive for Business の[さらに表示]→ 「パスを使用したファイルの変換」(PDF への変換機能を持つアクションは OneDrive のコネクタ内にある)。「プレビュー」とは? そのアクションが現在 Microsoft で開発中であることを示す。今後のアップデートで仕様や動作が若干変わる可能性があるが、現在でも十分利用できる。 - 設定項目:
項目 設定値 ファイル パス 雷マーク(⚡)→ トリガー「選択したファイルの場合」の動的コンテンツ filePath(ファイル パス) ターゲットの種類 PDF(になっていることを確認) - 「パスを使用したファイルの変換」はPDF に変換するだけで、作成や保存の機能は持っていない。そこで SharePoint にファイルを作成するアクションを追加する。[+] → [アクションの追加] →
SharePoint→ [さらに表示]→ 「ファイルの作成」。 - 設定項目(4つ):
項目 設定値 サイトのアドレス 999_テスト フォルダーのパス /DocLib(ライブラリなのにフォルダの形で指定する。下記テクニック参照) ファイル名 雷マーク → 「パスを使用したファイルの変換」の動的コンテンツ ファイル名 ファイル コンテンツ 雷マーク → 「パスを使用したファイルの変換」の動的コンテンツ ファイル コンテンツ(生成した PDF の中身) テクニック:フォルダーのパスの見分け方 フォルダーを開くとフォルダがずらっと出てきて難しいが、アップしたい SharePoint ライブラリの URL に注目する。…/sites/999_37/DocLib/Forms/AllItems.aspx
→999_37がサイト(999_テスト)、DocLibがライブラリ(サンプルライブラリ)。このフォルダ(DocLib)内にファイルをアップすればサンプルライブラリにアップできる。 - [保存] してフローを有効化する。
- 動作確認:OneDrive for Business で PDF にしたい資料(Word_資料.docx)を右クリック → [自動化] → [ファイルをPDFに変換](作成したフロー)。右側の「フローの実行」で2つのアプリにサインインされていることを確認して [続行] → [フローの実行]。
- SharePoint のサンプルライブラリに Word_資料.pdf がアップされている。
- Power Automate ではアプリ内から直接フローを実行させることもできる。
- 元のファイル・PDF ファイル・SharePoint にアップするファイル…とファイルのやり取りが少し難しい。動的コンテンツで各ファイルをやり取りする(前の処理で得られた値を次の処理で使っていく)ので、自分がどのファイルを扱っているかを意識しながら作ろう。
#14タスク作成のポイント(Planner)
新しい問い合わせを受け付けた、会議が終わった、案件管理表を更新した…。その後には必ず次の仕事(ネクストアクション)が発生します。それを Planner のタスクとして担当者に割り当てられればプロジェクト管理がスムーズ。SharePoint リストが更新されたら Planner でタスクを割り当てるフローを作ります。
作るフロー(3ステップで段階的に作る)
SharePoint サイト 999_テスト の サンプルリスト2 に新しいアイテムが追加されたりデータが変更されたら、自動で Planner(プラン:999_テスト)にタスクを割り当てます。
- リストの変更でタスク作成
- タスクにメモを設定
- 期限付きでタスクを作成
ステップ1:リストが変更されたらタスクを作成
- [作成] → [自動化したクラウド フロー]。フロー名:
リストが変更されたらタスクを作成。トリガー:「アイテムが作成または変更されたとき」(SharePoint) → [作成]。リストにデータが追加された/中身が変更されたときに実行できる。 - トリガー:サイトのアドレス=999_テスト、リスト名=サンプルリスト2。
- [+] → [アクションの追加] →
Planner→ 「タスクを作成する」(新規でタスクを1つ作成できる)。 - 設定項目:
項目 意味 設定値 グループ ID タスクを作成する場所 999_テスト プラン ID 999_テスト タイトル 作成するタスクの名前 リストが変更されました!【+ 動的コンテンツ 名前(Title) +さん】(どのデータが変更されたかも確認できるように)割り当てられたユーザー ID タスクを誰に割り当てるか(詳細パラメーター →[すべてを表示]) 担当者の Microsoft アカウント(講座では講師の個人アカウント) 詳細パラメーターの「割り当てられたユーザー ID」 - [保存] → SharePoint リストで山田さんのステータスを「完了」に変更 → Planner のページを何回か更新すると、自分宛てに「リストが変更されました!【山田美咲さん】」のタスクが作成される。
ステップ2:作成したタスクにメモを記載する
「タスクを作成する」で設定できるのはタイトルと割り当てユーザーの2つだけ。Planner のタスクにはメモを書けるので、注意書きを残したい場合はアクションをもう1つ追加します。
- 「タスクを作成する」の下の [+] → [アクションの追加] →
Planner→ 「タスクの詳細の更新」。作成したタスクの内容を更新してメモを記載できる。 - タスク ID(どのタスクを更新するか)の設定が少し特殊。クリックするとタスクが一覧で出るが、新規作成したタスクは見当たらない → 一番下の [カスタム値の入力] を選ぶと動的コンテンツを使えるようになる → 雷マーク →[表示数を増やす]→「タスクを作成する」の動的コンテンツ ID を選ぶ。
- 説明(メモの内容):
リストの内容の確認をお願いします! - [保存] → 佐藤さんのステータスを「未着手」に変更 → Planner に佐藤さんのタスクが作成され、開くとメモが記載されている。
ステップ3:タスクに期限(3日後)を設定する
タスクには必ず達成するまでの期限があるはず。「リストが変更されたら3日以内に確認してね」ということで、本日+3日後の日付を Planner の「期限」に設定します。
- 現在の時刻:現在の日付と時刻を取得する(ただしこのままでは使えない)
- タイム ゾーンの変換:デフォルトは UTC(協定世界時)なので、日本の時間帯に直す
- 時間への追加:日付に+3日する
アクションは増えるが、1つ1つはシンプル。
- リスト変更のタイミングで3日後の日付を取得してからタスクを作りたいので、トリガーと「タスクを作成する」の間(真ん中)の [+] → [アクションの追加]。
- 日付のアクションは少し特殊な場所にある:ランタイム →[組み込み] → Date Time コネクタ(日付に関するアクションが入っている)→ 「現在の時刻」。
- 次に [+] → ランタイム[組み込み]→ Date Time → 「タイム ゾーンの変換」。
項目 設定値 Base Time(変換したい日時) 動的コンテンツ Current time(現在の時刻) Source Time Zone (UTC) Coordinated Universal Time Destination Time Zone (UTC+09:00) Osaka, Sapporo, Tokyo - 次に [+] → ランタイム[組み込み]→ Date Time → 「時間への追加」。
項目 設定値 Base Time 動的コンテンツ Converted time(タイム ゾーンの変換で日本時間にした本日の日付) Interval 3Time Unit Day - 「タスクを作成する」の 詳細パラメーター →[すべてを表示] → 期限日時 に、動的コンテンツ Calculated time(時間への追加で作成した日時)を設定する。
- [保存] → 伊藤さんのステータスを「完了」から「未着手」に変更 → Planner に伊藤さんのタスクが作成され、期限が撮影日(7/8)の3日後の 2024/07/11 になっている。
#15承認フローの作り方
基礎編最後のトピック。承認=承認・拒否などの判断をフロー内に組み込む仕組み。Forms や SharePoint などから承認の申請が送られ、Teams または Outlook で内容を確認して承認/拒否を行います。面倒な申請手続きや提出物のチェックなどを自動化できます。
完成イメージ
- Forms の「有給取得申請」(1. 休暇の種類[全休/半休]、2. 取得予定日、3. 理由[任意])で申請を送信する。
- Teams に「○○は要求を送信しました」と承認依頼が届く(Outlook にも届く)。Teams の承認画面では 承認/拒否 の2択から選べる。
- 承認ボタンを押すと、結果がチャットで自動送信される(「申請が承認されました!」)。
ステップ1:承認コネクタで承認を作成する
- [作成] → [自動化したクラウド フロー]。フロー名:
承認フロー。トリガー:「新しい応答が送信されるとき」(Microsoft Forms) → [作成]。 - トリガーの フォーム ID:有給取得申請。
- 回答内容を取得するため、[+] → 「応答の詳細を取得する」。フォーム ID:有給取得申請、応答 ID:動的コンテンツ 応答 ID。(#04 の復習)
- [+] → [アクションの追加]。承認コネクタは少し特殊な場所にある:ランタイム で [標準] を選ぶ → 承認 コネクタ。
- 承認コネクタのアクションは4つ(開始してテキストの承認を待機/開始して承認を待機/承認を作成/承認を待機)あるが、覚えるべきは1つだけ:「開始して承認を待機」。承認を作成(申請)し、その回答結果を応答として待つことができる。承認の処理ではほとんどこれを使う。
- 承認の種類 を選ぶ。使うのは主に次の2つ:
承認の種類 意味 承認/拒否 - すべてのユーザーの承認が必須(今回使用) 担当者全員が承認する必要がある 承認/拒否 - 最初に応答 一番最初に応答したユーザーの回答を結果とする どちらも回答は「承認」か「拒否」の2択。今回は承認者が1人なのでどちらでもよい。
- 設定項目を上から設定する。
項目 意味 設定値 タイトル Teams/Outlook の承認画面に表示される依頼のタイトル 有給の申請がされました担当者 承認する必要があるユーザー(セミコロン区切りで複数名登録可) 承認者の Outlook アカウント 詳細 具体的なメッセージ(申請内容を書くことがほとんど) 有給の申請がされました!種類:[休暇の種類]日付:[取得予定日]理由:[理由]
※[ ]は「応答の詳細を取得する」の動的コンテンツ。Forms の回答内容を承認画面でそのまま確認できる要求元(詳細パラメーター →[すべてを表示]) 承認を作成したユーザー=Forms から申請したユーザー 動的コンテンツ Responders' Email(回答者のメール) 注意 要求元を設定し忘れると、申請者がフローの作成者のままになってしまう。要求元に Responders' Email を設定 - [保存] → Forms から種類・取得予定日・理由を入力して送信 → 少し待つと Teams に「要求を送信しました」。アクティビティ から詳細を開くと入力内容が表示され、承認/拒否を選べる。承認を押すと「承認済み」になる。
ここまでが承認コネクタを使った承認フローの最も基本的な使い方です。
ステップ2:承認/拒否の結果に応じて処理を分岐する
ステップ1では承認/拒否を選んだところでフローが終了していました。理想は、ユーザーが選んだ時点でその結果に応じて処理を分岐すること(承認されたら「承認されました」、そうでなければ「拒否されました」と通知)。Power Automate で承認フローを作るときは、必ずと言っていいほど条件分岐がセットで使われます。
- 「開始して承認を待機」の下の [+] → [アクションの追加] → ランタイム[組み込み] → Control → 「条件」。
- 条件を設定する。「開始して承認を待機」が出力する結果(outcome)には、承認なら Approve、拒否なら Reject のどちらかが入る。
左の値 演算子 右の値 動的コンテンツ 結果(outcome)(開始して承認を待機) is equal to Approve(直接入力)→「もし承認の結果が Approve(承認)だったら」という条件分岐ができる。
- True 側:[+] → 「チャットまたはチャネルでメッセージを投稿する」(Teams のチャットで申請者に通知)。
項目 設定値 投稿者 フロー ボット 投稿先 Chat with Flow bot Recipient 通知先のアカウント(講座では自分の Outlook アカウントで動作確認) Message 申請が承認されました!+種類:[休暇の種類]日付:[取得予定日]理由:[理由](申請内容を再確認できるように) - False 側:同じくメッセージを送るだけなので、True 側のアクションを右クリック → [アクションのコピー] → False 側の [+] → [アクションの貼り付け]。メッセージを
申請が拒否されました!に書き換える。 - [保存] → Forms から申請を送信 → Teams で承認 → チャットに「申請が承認されました!」と申請内容が届く。
- 承認フローでは「開始して承認を待機」を使い、要求元の設定を忘れない。
- 承認フローを作るときは条件分岐がセット。条件アクションで Approve / Reject を判定し、出力される値に応じて処理を切り分けるテクニックを押さえる。