Teamsで一斉送信する方法|Excelから個別通知・複数チャネルへの投稿

Teamsで一斉送信する方法は、同じ内容を複数チャネルへ投稿する方法と、Excelの宛先ごとに個別通知する方法で異なります。個別通知はPower AutomateのFlow botを使う構成から検討できます。

一つのグループチャットへ全員を追加することと、受信者ごとに独立したチャットへ送ることは別です。宛先同士に内容を見せてよいか、返信先を誰にするか、利用できる送信者を先に決めてください。大量のチャットを短時間で送れば必ず成功する、といった保証はできません。

目次

目的別にTeamsの一斉送信を選ぶ

目的候補確認すること
同じ案内を複数チャネルへ出すTeamsのクロスポスト投稿先のメンバー資格・投稿権限・モデレーション
同じ内容をグループで共有して会話するグループチャット参加者に同じ会話が見える
Excelの宛先ごとに個別の通知を出すPower Automate+TeamsコネクタFlow botと本人名義の違い、宛先・文面・送信結果
本人として既存の1対1チャットへ送る開発Graphの委任権限を使う構成ユーザー認証、チャットID、必要なAPI権限
Teams以外でもよい個別の案内メール等の別経路配信先と返信方法を別途設計

同じ内容なら複数チャネルへクロスポストする

  1. チャネルで投稿を始める。
  2. 作成欄の「アクションとアプリ→他のチャネルに投稿」を選ぶ。
  3. 投稿先のチャネルを追加して確認する。
  4. 内容を確認して投稿する。

投稿できるのは、メンバーであり投稿権限も持つチャネルです。モデレーションによって制限される場合もあります。目立たせたい案内にはチャネルの「アナウンス」も使えますが、アナウンスはグループチャットや1対1チャットの機能ではありません。個別メッセージの差し込み送信とは区別します。

Excelから個別通知するPower Automateの構成

以下は、組織内の少数宛先で確認してから展開するフローの設計例です。この記事の手順で実際にフローを作成・送信した結果を示しているわけではありません。利用する環境の契約、管理設定、宛先の条件を確認してください。

1.Excelの宛先をテーブルにする

OneDrive for BusinessやSharePoint等に置くExcelファイルに、宛先・名前・個別本文・行ID・送信対象・送信状態等の列を用意し、範囲をテーブルにします。行IDは重複させず、空の宛先や同じ宛先の重複、個人向けアカウントと職場用アカウントの混在を確認します。

列役割
行ID送信結果と再実行対象を識別する
宛先通知対象の組織内ユーザーを確認する
名前・個別本文その行に対応した内容を組み立てる
送信対象・送信状態未送信の対象と送信済みを分ける

2.行を取得して対象を絞る

Excel Online (Business)の「テーブル内に存在する行を一覧表示(List rows present in a table)」で対象を読みます。既定では最大256行なので、それを超える場合はページネーションを有効にし、取得件数と想定する件数を照合します。

Excel画面で行を絞り込んだだけでは、コネクタの取得対象が同じ範囲になるとは限りません。アクション側のフィルターやフローの条件で送信対象・未送信の状態を明示し、取得された行を確認します。数百人へ送る前に、少数のテスト用行だけを処理する条件を用意してください。

3.行ごとにFlow botから通知する

  1. 取得した行ごとの処理に、Teamsの「チャットまたはチャネルでメッセージを投稿(Post a message in a chat or channel)」を配置する。
  2. 「投稿者(Post as)」をFlow bot、「投稿先(Post in)」をChat with Flow botにする。
  3. Recipientへその行の宛先、Messageへ名前と本文の動的値を指定する。
  4. 自分や許可されたテスト宛先で、表示された送信者・本文・通知先・返信先を確認する。

Flow botからの個別通知は、作成者本人から届く通常の1対1チャットとは異なります。同じアクションにUserの選択肢があっても、どの投稿先と組み合わせられるかを確認してください。本人名義で任意ユーザーに個別送信できると、一律には説明できません。非推奨の旧「Post a message as the Flow bot to a user」ではなく、現行の投稿アクションを確認します。

4.成功・失敗を行ごとに記録する

行ID、宛先、処理時刻、成功・失敗、利用できるメッセージIDやエラーを記録する設計にします。フロー全体が終了しても、すべての宛先へ送信されたとは限りません。再実行時は送信済みを除外し、結果が不明な行は確認してから再送してください。

Excelへの同時更新等も考慮し、いきなり並列数を増やして速度を優先しません。送信対象の承認、テスト時の件数、実行履歴とチャット上の実際の表示を照合する工程を用意します。アクション成功と相手が読んだことも同じ意味ではありません。

利用条件とコネクタの制限を確認する

  • Teamsの投稿アクションには、管理センターでWorkflowsアプリが許可されていることが必要です。
  • Flow botの送信者は商用テナント向けで、Government Cloudでは同じ構成を使えません。
  • コネクタによるプライベートチャネルへの投稿は、現行資料ではサポートされません。Teams画面の手動投稿と区別します。
  • メッセージの上限はHTML等を含めて約28KBです。長い本文や画像の詰め込みを避け、実際の出力を確認します。
  • Excel Online (Business)とTeamsはStandardコネクタですが、契約・フロー構成・環境の条件まで一律に無料と保証しません。

Graph APIを使う場合は作成と送信を分ける

通常のチャット作成は「POST /chats」、既存のチャットへの送信は「POST /chats/{chat-id}/messages」です。メッセージ送信APIだけではチャットを作れません。1対1のチャットが既にある場合、チャット作成操作は既存のチャットを返します。作成と送信の権限も別々に確認します。

操作仕事・学校アカウントの最小の委任権限
チャット作成Chat.Create
通常のチャットメッセージ送信ChatMessage.Send

通常の個別連絡を送るため、クライアント資格情報だけで任意ユーザーのチャットへ投稿できる構成を案内しません。メッセージ送信APIのアプリケーション権限欄にあるTeamwork.Migrate.Allは移行シナリオのもので、公式のインポート例では対象チャットを移行モードにする必要があります。これを日常の一斉通知の権限として流用しないでください。個人用Microsoftアカウントも、上表のAPIの委任送信には対応しません。

管理者と認証方式・同意・利用するAPIの最小権限を確認し、トークンやシークレットをExcel本文やソースコードへ埋め込みません。Graphの429応答ではRetry-Afterに従って待機し、即座の再試行を繰り返さない設計にします。バッチ化すれば制限を回避できると考えず、各応答を確認します。

よくある疑問

Power Automateでは宛先ごとに文面を変えられない?

行ごとの値をRecipientやMessageの動的内容として使う構成を検討できます。固定宛先だけの機能ではありません。ただし、取得する行、送信者、宛先の種別、管理設定等を確認する必要があります。

一つのグループチャットを作れば個別送信になる?

なりません。グループチャットは参加者が共有する会話です。個々の通知と取り違えないよう、テスト時にも受信者側の表示を確認します。

大量通知を最短で送る設定は?

人数だけで待機時間や成功率を決めることはできません。送信先・内容を確認し、上限、実行履歴、再送時の重複を考慮してください。単一の案内を全員に見せる目的なら、チャネル投稿で済むかも先に検討します。

公式資料

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次