LoginSignup
5
5

Power AutomateとExcelを利用したメッセージ投稿BOTを作ってみる

Last updated at Posted at 2023-11-14

はじめに

お客様から質問いただいた内容を備忘と共に残していこうと思います。

今回いただいた要望事項は、
「部署で毎週流している格言Excelから自動でTeamsへ投稿したい!」 という要望でした。
時報BOTですね。毎週格言流すの素敵ですね。
また、投稿した履歴がわかるように使用履歴も付けたいとの事。やってみましょう。

要望事項

1.ExcelからTeamsへメッセージを投稿したい
2.一度投稿したメッセージには使用履歴を付け、投稿の対象にしない
3.決められた日時にメッセージを投稿する
4.元ExcelファイルはOnedrive for Businessに格納している

使用するコネクタ

無償ライセンスの範囲で作成可能です
Excel Online
https://learn.microsoft.com/ja-jp/connectors/excelonline/
Teams
https://learn.microsoft.com/ja-jp/connectors/teams/

作り方手順

1.Excel準備

まずはTeamsへ投稿する元となるExcelを準備しましょう

ここでの注意はExcelのデータ範囲をテーブルにしないといけません
久々に実施したらすっかり忘れていた
Excelでテーブルを作成する

こちらも参考になります Special Thanks Masumori

image.png
アインシュタインの名言を並べてみました
列は#(ナンバー), 格言, 使用(履歴)の3列のみ
この列名は後半再登場します

2.Power Automateでフローを作る

a.スケジュールの設定

Power Automateに移動して→
[作成] > [スケジュール済みクラウドフロー]を選択
image.png

[フロー名]、[開始日]、[繰り返し間隔]を入力、[設定曜日]を選択
11/1開始の毎週月曜日AM10:00に動くフローとなります
[作成]ボタンを選択
image.png

image.png

[新しいステップ]を選択
image.png

b.使用履歴の変数設定

使用履歴の日付を取得する変数を用意します
[組み込み] > [変数]を選択
image.png

[変数を初期化する]を選択
image.png

[名前]に任意の変数名を入力 例:date
[種類]に"文字列"を選択
[値]に 日時カテゴリの [ utcNow() ] を選択
OKボタンを忘れずに選択

image.png

image.png

こんな感じになるはず
image.png

[新しいステップ]を選択
image.png

c.参照するExcelの設定

検索バーにExcelと入力し、Excel Online(Business)を選択
[アクション]から[表内に存在する行を一覧表示]を選択
image.png

[場所]は [OneDrive for Business]を選択
[ドキュメントライブラリ]はOneDriveを選択
[ファイル]はファイルアイコンを押すと、ブラウザ形式で対象ファイルまで遷移できます
[テーブル]はExcelを作成した際に作ったテーブル名を選択します。特に名称を決めていなければテーブル1のはず
[フィルタークエリ]に使用履歴がある行はスキップしたいので、使用 eq ''と入力
[上から順に取得]に1を入力
image.png

[新しいステップ]を選択
image.png

d.投稿するTeamsの設定

コネクタから[Microsoft Teams]を選択
image.png

[チャットまたはチャネルでメッセージを投稿する]を選択
image.png

[投稿者]は[フローボット]を選択
[投稿先]は[Channel]を選択
[Team]は任意のものを選択
[Channel]は任意のものを選択
image.png

[Message]には[動的なコンテンツ]の[表内に存在する行を一覧表示]から動的コンテンツを配置します
image.png

動的なコンテンツの表示がおかしい場合
このフローで~~~が図の様に表示されないときはブラウザのズームを縮小してみましょう
※こんな感じになってしまう場合
image.png

image.png

[#],[格言],[使用]を一先ず選択して配置
image.png

ステップが自動で[Apply to each]となります
image.png

[新しいステップ]を選択
image.png

e.使用履歴をExcelへ追記する設定

[Excel Online(Business)]から[行の更新]を選択
image.png

先ほどと同じExcelファイルを選択
[場所]は [OneDrive for Business]を選択
[ドキュメントライブラリ]はOneDriveを選択
[ファイル]はファイルアイコンを押すと、ブラウザ形式で対象ファイルまで遷移できます
[テーブル]はExcelを作成した際に作ったテーブル名を選択します
[キー値]は[動的なコンテンツ]>[表内に存在する行を一覧表示]>[#]を選択
準備したExcelの列が読み込まれている
[使用]に[動的なコンテンツ]から[date]を選択

これで準備したExcel内にタイムスタンプを追記できるようになりました
image.png

image.png

保存ボタンを押します
image.png

3.テストを実施

[テスト]ボタンを選択
image.png

[手動] > [テスト] > [フローの実行]を選択
image.png
image.png
[完了]を選択
image.png

フローが実行される。エラーがある場合はエラーが表示される
image.png

4.結果の確認

無事にTeamsへの投稿、元Excelファイル追記がされました
image.png

image.png

Advanced modification

使用履歴のタイムスタンプが分かりづらいので直します
image.png

[変数を初期化する] > [値]に記入した [ utcNow() ] を選択

image.png

[ utcNow('yyyy-MM-dd') ]と入力し、更新ボタンを選択

image.png

[使用]列に指定したフォーマットで日付が追記できました
image.png

参考資料

5
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5