Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Power Automateを使ってMicrosoft Teamsにメンバーを一括登録する方法

0.はじめに

Teamsのチーム所有者が,Office365一般ユーザーの立場で, Teamsにメンバーを一括登録する方法については,下記の記事で解説されています.
Teamsのメンバーを一括登録する(一般ユーザーで)
Adding bulk users from a .csv or Excel file to a Microsoft Teams team with Power Automate

本記事では, これらの記事に記載されている方法を少し変更したフローについて説明しています.
これらのフローを用いた場合,Excelファイルに記載のアドレスのうち,既にグループに登録済みのメンバーが含まれている場合,その箇所はエラーとなります.最後まで実行され,未登録分はきちんと登録されるので実用上問題はないのですが,登録済みメンバーがいる場合もエラーにならないように変更したので,備忘録として書いておきます.

1.ExcelファイルをOneDriveかSharePointに保存する

Teamsに登録したいメンバー一覧を記載したTableを含むExcelファイルを用意し,OneDriveかSharePointにアップロードします.この例では,Excelファイルを'excel_to_teams_test'と名前をつけて,OneDriveに保存しています.
Excelでテーブルとして書式設定を行っておきましょう.
エクセルのテーブル機能の使い方や設定方法
この例では,テーブル名をteam_members_1として保存しています.テーブルに,アドレスを記載した列以外に,IDという列とStatusという列も設けておきます.サンプルではNameという列も用意していますが,これは本フローでは特に利用するわけではありません.なお,既に追加済みのメンバーがいる場合には,Status欄にはaddedと記載しておきます.
Excel_to_Teams_10.png

2.Power Automateでフローを作成する

2.1手動でフローをトリガーします

空白から開始(Create from blank)インスタントクラウドフローを選択して,フローの作成を始めます.
トリガーとしては,手動でフローをトリガーします(Manually trigger a flow)を選択します.
Excel_to_Teams_7.png

2.2表内に存在する行一覧を表示

次に'アクションを追加'でコネクタのひとつであるExcelを選択します.アクションとしては,表内に存在する行一覧を表示(List rows present in a table)を選択します.
場所,ドキュメントライブラリファイルテーブルは,ステップ1で保存したものをプルダウンメニューから選択します.
Excel_to_Teams_8.png

さらに,詳細オプションを表示するを選択します.
詳細オプションにFilter Queryという項目があるので,
Status ne 'added'
と記載します.neは'not equal'の略ですね.
こうすることで,Status列がaddedでない行だけ一覧として取得されます.
Excel_to_Teams_7.png
Status列がaddedである行だけ一覧として取得したい場合は
Status eq 'added'
をフィルタークエリの欄に記入すればいいわけです.
Filter Queryの書き方は,
【PowerAutomate】SharePoint フィルタークエリの書き方講座
などが参考になります.

2.3取得した各行に対して,グループへのメンバー追加,Excelテーブルの行の更新を行う

2.3.1コネクタのControlでApply to eachを選択

次に,アクションを追加し,組み込みのコネクタのControlを選択し,Apply to eachを選びます.'以前の手順から出力を選択'という項目は,動的コンテンツ一覧に表示されるExcelのvalueを選択します.つまり,ステップ2.2で取得されたStatusaddedでない各行に対して,以下のアクションを行う,ということです.

2.3.2コネクタのOffice 365 Groupsを用いて'グループへのメンバー追加'を行う

コネクタのOffice 365 Groupsを検索します.検索した際に,Office 365 Groupsは丈夫に表示されず,埋まっているかもしれないので,その場合は,﹀の部分をクリックして,さらにコネクタを表示します.

Excel_to_Teams_5.png

Excel_to_Teams_6.png
グループへのメンバー追加(Add member to group)を選択します.グループIDはメンバーを追加したいTeamsのチーム名をプルダウンメニューから選択します.
User Principal Name(UPN)の欄はOffice 365のアカウントに利用しているEmailアドレスを記載しますが,ExcelのテーブルではEmailという列に記載していたので,ダイナミックコンテンツのExcel Emailを選択します.
Excel_to_Teams_3.png

2.3.3Excelテーブルの'行の更新'を行う

このユーザーは追加済みであることが分かるように,ExcelのテーブルのStatusの列にaddedを追記します.
アクションを追加でExcelのコネクタを選択し,行の更新(Update a row)を選択します.テーブルはステップで用意したものです.
キー列としては,IDの列を,キー値は動的コンテンツのExcel IDを選択します.こうすることで,Apply to eachで作業中の当該行に関するアップデートを行うように設定できます.空欄のままの列に対応したセルは更新されず,Statusだけaddedと加筆されます.
Excel_to_Teams_4.png

3.フローを実行する

フローは保存して,テストを行います.'フローのテスト'で'手動'を選択して実行します.ExcelテーブルでStatus列がaddedでなかったメンバーだけ新たに登録されたことが分かります.また,フローの実行後はExcelテーブルのStatus列はすべてaddedにアップデートされました.

4.最後に

既に追加済みのメンバーがいる場合も,エラーを気にしなければ実用上問題がなかったので,わざわざfilter queryというオプションと行の更新アクションを追加する必然性はありません.しかし,たとえば,一斉にメール送信するときなど,Statusとしてsentと記載して,まだsentでない宛先だけに送る,などといった使い方は便利そうなので,記録用に書いておきました.

anak
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away