はじめに
お客様から質問いただいた内容を備忘と共に残していこうと思います。
今回いただいた要望事項は、
「部署で毎週流している格言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
アインシュタインの名言を並べてみました
列は#(ナンバー), 格言, 使用(履歴)の3列のみ
この列名は後半再登場します
2.Power Automateでフローを作る
a.スケジュールの設定
Power Automateに移動して→
[作成] > [スケジュール済みクラウドフロー]を選択
[フロー名]、[開始日]、[繰り返し間隔]を入力、[設定曜日]を選択
11/1開始の毎週月曜日AM10:00に動くフローとなります
[作成]ボタンを選択
b.使用履歴の変数設定
使用履歴の日付を取得する変数を用意します
[組み込み] > [変数]を選択
[名前]に任意の変数名を入力 例:date
[種類]に"文字列"を選択
[値]に 日時カテゴリの [ utcNow()
] を選択
OKボタンを忘れずに選択
c.参照するExcelの設定
検索バーにExcelと入力し、Excel Online(Business)を選択
[アクション]から[表内に存在する行を一覧表示]を選択
[場所]は [OneDrive for Business]を選択
[ドキュメントライブラリ]はOneDriveを選択
[ファイル]はファイルアイコンを押すと、ブラウザ形式で対象ファイルまで遷移できます
[テーブル]はExcelを作成した際に作ったテーブル名を選択します。特に名称を決めていなければテーブル1のはず
[フィルタークエリ]に使用履歴がある行はスキップしたいので、使用 eq ''
と入力
[上から順に取得]に1
を入力
d.投稿するTeamsの設定
[投稿者]は[フローボット]を選択
[投稿先]は[Channel]を選択
[Team]は任意のものを選択
[Channel]は任意のものを選択
[Message]には[動的なコンテンツ]の[表内に存在する行を一覧表示]から動的コンテンツを配置します
e.使用履歴をExcelへ追記する設定
[Excel Online(Business)]から[行の更新]を選択
先ほどと同じExcelファイルを選択
[場所]は [OneDrive for Business]を選択
[ドキュメントライブラリ]はOneDriveを選択
[ファイル]はファイルアイコンを押すと、ブラウザ形式で対象ファイルまで遷移できます
[テーブル]はExcelを作成した際に作ったテーブル名を選択します
[キー値]は[動的なコンテンツ]>[表内に存在する行を一覧表示]>[#]を選択
準備したExcelの列が読み込まれている
[使用]に[動的なコンテンツ]から[date]を選択
これで準備したExcel内にタイムスタンプを追記できるようになりました
3.テストを実施
[手動] > [テスト] > [フローの実行]を選択
[完了]を選択
4.結果の確認
無事にTeamsへの投稿、元Excelファイル追記がされました
Advanced modification
[変数を初期化する] > [値]に記入した [ utcNow()
] を選択
[ utcNow('yyyy-MM-dd')
]と入力し、更新ボタンを選択
参考資料