2.1K Views
October 18, 25
スライド概要
Microsoft 365、Power Platrform、PowerShellについて調べたことや検証したこと
SharePoint と Power Automate と Microsoft Forms を駆使して 台帳管理を効率化してみた 気ままに勉強会 #126 気ままになんでもLT会~第8回~ 2025/10/18 1
自己紹介 • 名前: • 活動場所 わたるふ • ブログ (主な活動場所) ルドルフもわたるふもいろいろあってな https://wataruf.hatenablog.com • こんなひとです • SharePoint Server 2007 からお仕事でMicrosoft 製品に関わる • PowerShell が好き • 公開している登壇資料 https://www.docswell.com/user/wataruf01 • Microsoft Teams が好き • Power Automate が特に好き • マシュマロ (質問を受け付けています) • 活動内容 • 調査・検証したことなどをブログで解説しています • 開発したもの (主にPower Automate のクラウドフロー) をGitHubで公開しています https://marshmallowqa.com/wataruf01?utm_medium=url_text&utm_ source=promotion Microsoft MVP for Business Applications (2023/4~) 2
注意事項 • 解説する内容は私の個人的な見解が含まれています • 内容に明らかな誤りがある場合はご指摘をいただけると助かります 3
今回のお話 SharePoint と Power Automate と Microsoft Forms を駆使して 台帳管理を効率化してみた 開発物はGitHubで公開予定です。 4
はじめに 勉強会に参加されている皆さんは、SharePoint を使った台帳管理をこれまで一度は取り組まれたことがあ ると思います。 また、台帳管理の中でMicrosoft Forms や Power Automate を組み合わせて、業務の一部を自動化・効 率化するという取り組みも多くの方が経験されていると思います。 たとえば― • SharePoint 上のアイテムが更新されたら自動で通知メールを送る • Microsoft Form の回答内容を SharePoint に自動で登録する といった仕組みです。 今回は、私の「台帳管理のこんな自動化やってみました」という例をご紹介します。 5
そもそも「台帳管理」とは何か 「台帳管理」とは業務やプロジェクトなどに関する情報を一元的に整理・ 管理する仕組みのこと。 台帳管理の主な役割 • 部署ごと・担当者ごとに散らばりがちなデータを 1つの場所(台帳)にまとめる。 • 「いつ・誰が・どのように対応したか」を記録する ことで トレーサビリティを確保する。 • SharePoint・Power Automate・Power BI などと連 具体的な台帳の例 • 契約管理台帳 (契約先・金額・更新日を管理) • 顧客対応台帳 (問い合わせ内容や対応履歴を管理) • 請求書/支払管理台帳 (取引先・金額・ステータスを管理) 携することで更新通知や集計レポートを行う。 6
今回使用する台帳は「緊急連絡先台帳」です 「緊急連絡先台帳」とは、災害・事故・システム障害などの緊急時に迅速に関係者へ連 絡するための情報をまとめた台帳のことです。 7
今回の解説したいこと • 今回解説したいことは、台帳上のデータを定期的に更新する仕組みです。 • 緊急連絡先台帳は、一度作って終わりではなく、最新状態を維持することが必要です。 • しかしながら、手動で依頼や修正を行うのは負担が大きく、更新漏れの原因にもなりま す。 • そこで今回は、Power Automate で定期的に情報提供依頼を自動送信し、 Microsoft Forms 経由で情報を回収するようにしました。これにより、台帳の鮮度を保 ちながら、担当者の手間を減らすことができます。 8
業務の流れイメージ 9
① 初期処理 台帳最新化業務の初期工程でのみ実施する処理。 例: 情報収集ステータスのリセット 未回答 未回答 全員が未回答である 緊急連絡先 台帳 と認識しました。 未回答 未回答 台帳に登録されている人々 10
② 回答依頼メール送信 情報提供依頼メールを全員宛てに送信 ※宛先メールアドレスは台帳に記載されているものとします 未回答 未回答 受信 受信 緊急連絡先 未回答 台帳 メール送信 受信 未回答 受信 ※メール本文に 回答フォームのリンクを記載 台帳に登録されている人々 11
③ 回答を台帳に反映 フォームに入力された回答を台帳に反映 回答 回答済み 未回答 緊急連絡先 台帳 未回答 未回答 回答を台帳に反映 台帳に登録されている人々 12
④ リマインドメール送信 ②から3日経過後 リマインドメールを未回答者のみに送信 回答済み 未回答 受信 緊急連絡先 未回答 台帳 メール送信 受信 未回答 受信 台帳に登録されている人々 13
⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し 台帳に登録されている人が全員回答済みになるまで リマインドメールの送信と回答反映を繰り返す 回答済み 回答済み 緊急連絡先 台帳 3日ごとにメール送信 回答 回答済み 未回答 受信 回答を台帳に反映 台帳に登録されている人々 14
⑥ 完了処理 台帳最新化業務の最終工程でのみ実施する処理。 例: 完了報告メール送信、データのエクスポート 回答済み 回答済み 定期処理の無効化 全員が回答済みである 緊急連絡先 と認識しました。 回答済み 回答済み 台帳 そのため、定期処理を 停止します。 ( ˘ω˘ )スヤァ 台帳に登録されている人々 15
自動化 16
業務の流れ ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し ⑥ 完了処理 17
どのステップを自動かするか ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し ⑥ 完了処理 18
よくある(と思われる)自動化 ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し SharePointの 「複数の項目の取得」アクション ↓ Office 365 Outlook の 「メールの送信(v2)」アクション ⑥ 完了処理 19
よくある(と思われる)自動化 ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し Microsoft Formsの 「新しい応答が送信されるとき」トリガー ↓ SharePoint 「項目の更新」アクション ⑥ 完了処理 20
よくある(と思われる)自動化 ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し ⑥ 完了処理 21
よくある(と思われる)自動化 ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し ⑥ 完了処理 22
今回解説する自動化対象 ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し ⑥ 完了処理 23
今回解説する自動化対象 ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 無効状態 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し ⑥ 完了処理 24
今回解説する自動化対象 ① 初期処理 ② 回答依頼メール送信 無効状態 ③ 回答を台帳に反映 ↓ 有効 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し ⑥ 完了処理 25
今回解説する自動化対象 ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し ⑥ 完了処理 26
今回解説する自動化対象 ① 初期処理 ② 回答依頼メール送信 ③ 回答を台帳に反映 【今回の主旨】 ④ リマインドメールを送信 ⑤ リマインドメール送信(④) と 回答反映(③)の繰り返し ⑥ 完了処理 27
使用するもの 28
今回使うものはこちら 定期実行トリガー 緊急連絡先 回答用 のフロー 変数用フロー 台帳 フォーム SharePointリスト Microsoft forms のフォーム Power Automate のフロー ひとつ ひとつ 3つ フォーム回答でトリガーする のフロー 29
自動処理のメインは 定期実行トリガー 緊急連絡先 回答用 のフロー 変数用フロー 台帳 フォーム SharePointリスト Microsoft forms のフォーム Power Automate のフロー ひとつ ひとつ 3つ フォーム回答でトリガーする のフロー 30
処理内容 メインフローをベースに解説 31
処理内容 メインのフローをベースに 処理内容を解説します 32
処理内容 33
処理内容 34
処理内容 次のスライド 35
フローが終了しても値が破棄されない変数をフローだけで実現する 36
変数用フローに格納している値を取得 メインフロー 変数用フロー 取得 プロパティの値の意味 • LastEmailSentDate (日付) → 情報提供依頼メールを最後に送信した日 • IsAllProcessesCompleted (true or False) → 全行程が完了したフラグ 37
注意点 今回の自動化において、 フローが終了しても破棄されない変数の実現方法として 変数用フローを使うことは必須ではありません。 今回の自動化を参考にして実際に使用する際は 変数用のSharePointリスト等で代用することを推奨します。 38
処理内容に戻ってきました 次のスライド 39
回答の受領状況管理 回答の受領状況は台帳上の「対応ステータス」で管理します。 回答を受領する際にフローが対応ステータスを「回答済み」に更新します。 台帳最新化の初期処理では、 台帳上のすべてのアイテムの対応ステータスを「回答待ち」に設定します。 40
どうやって「初期処理」の実行要否を判定しているか 初期処理を行うかどうかは 変数用フローから取得した IsAllProcessesCompleted (全行程完了フラグ) の値で判定しています。 True の場合 ⇒ 初期処理を行う False の場合 ⇒ 初期処理をスキップする ※「前期のフロー使用時の全行程が完了済み」 つまり「今回の実行は今期の初回実行である」 というロジック 41
処理内容に戻ってきました 次のスライド 42
どうやって「メールの送信」の実行要否を判定しているか 初期処理を行うかどうかは 変数用フローから取得した LastEmailSentDate (情報提供依頼メールを最後に送信した日付) の値で判定しています。 最後に送信した日付から経過した日数が3日以上の場合 ⇒ メールを送信する 最後に送信した日付から経過した日数が2日以下の場合 ⇒ メールを送信しない 43
送信するメールの内容 44
送信するメールの内容 Microsoft Forms の「事前入力済みURL」機能を使って 回答反映先のアイテムを特定する情報を質問項目として埋め込みます。 45
処理内容に戻ってきました すべてのアイテムが 「回答済み」の場合は 全行程完了フラグをtrue にします 次のスライド 46
どうやって全件が「回答済み」であるかを判定しているか 47
処理内容に戻ってきました 変数用フローが保持している 変数の値を更新します。 次のスライド 48
変数用フローを更新する方法 49
処理内容に戻ってきました 完了処理として フローを無効にしています 次のスライド 50
「フローの停止」アクションでフローを無効化する 51
解説に使用したフローは公開する予定です。 解説記事をブログにこれから掲載予定です。 記事公開とあわせてフローもGitHubで公開予定です。 52
Power AutomateのフローやTIPSをブログで公開しています • 興味を持っていただけたかたは下記のURLからいらしてください https://wataruf.hatenablog.com 53
ましゅまろで質問をうけつけています • 匿名でのご質問も可です。 • X(旧Twitter)にマシュマロのリンクを公開しています。 • 回答内容はブログで投稿します。 54
最後に SharePoint と Power Automate と Forms を駆使して 台帳管理を効率化してみたというお話をさせていただきました。 これがどなたかのお役に立てれば幸いです。 フィードバック・ご意見をいただけると とても嬉しいです。 55
56