LoginSignup
3
2

PowerAutomateでグループのメンバー一覧をExcelに出力する

Posted at

利用者を台帳管理したいようなニーズにいかが?

Microsoft365ではグループを使って色々なものを管理しています。時にはそういうグループの一覧をExcelなどのファイルに出力して管理したいということもあるでしょう。ある業務システムを利用できるユーザーを、メールが有効なセキュリティグループをつかってコントロールしていて、グループへのメンバー追加はユーザーにまかせているけれども、利用者台帳を別に表として管理しておきたいというようなニーズはありそうです。今回は、PowerAutomateを使って試してみます。

グループのIDを用意する

いちばん馴染みが深いのは、Teamsでチームを作った時に自動的に作成されるMicrosoft365チームでしょう。それ以外にも配布リスト、セキュリティグループなどがあります。
PowerAutomateではメンバーを取得したいグループの「グループID」を利用します。一番簡単なのはMicrosoft365管理センターから利用したいグループの画面を開いた時に、その画面のURLの中に表示されています。セキュリティグループの場合は「GroupDetails/」とう表示の後ろにある部分です。Microsoft365グループの場合は「TeamDetails/」に表示されているグループIDをあらかじめ取得しておきます。
スクリーンショット 2024-02-03 12.05.28.png

Excelで2つのテーブルを用意する

取得したいグループのIDを記載した「取得グループ」テーブルと、結果を出力する「メンバー一覧」テーブルを用意しました。
image.png

グループIDをアクションに渡す

Excelに用意した「取得グループ」を「表内に存在する行を一覧表示」アクションを使って取得し、ループを使ってひとつずつ「グループ メンバーの一覧を表示」アクションに渡します。
Apply to eachのなかで取得しているので、その中身から「取得グループID」だけを取り出すには、このように式を入力します。

item()?['取得グループID']

image.png
いちどテスト実行してみると、グループに参加しているメンバーの名前やメールなどの情報が取得できたことがわかります。

image.png
あとはExcelのテーブルに書き出してやるだけです。
image.png
実行してみると、メンバーなどの情報が一覧に書き出されました。あらかじめ複数のグループの情報を一度に取得できるようにしてあるので、右側の取得グループIDを増やせば、自動的に左に出力されるリストも増えいきます。
image.png

実行するたびにユーザーが増えていく(涙)

成功によろこび、嬉しくなって再実行してみるとすぐに気がつきます。実行するたびに同じユーザーが増えていくと・・・。
image.png
これではグループの中身を表す一覧としては使えないので、テーブルに追加する際に、同じユーザーがいなければ追加。いれば追加しないという処理が必要そうです。
まず、ひとつめのループに、メンバーリストを取得する「表内に存在する行を一覧表示」アクションを追加しました。フィルタークエリにこのループの1回ごとに、メンバーリストの中から1グループずつにフィルタをかけて取り出します。こうすることで、複数のグループに同じメンバーが存在した場合にも判定がしやすくなります。
image.png
こんどは、取得したメンバーを「選択」アクションをつかって配列にしてやります。「選択」はマップモードに切り替えてから、図のように指定して使います。
image.png
ユーザーリストを以下のように整えてからテスト実行してみます。
image.png
あらかじめフィルタリングされたユーザーの一覧が、配列になっていることがわかります。これで、存在するかどうかの判定がしやすくなります。
image.png
ここまでできれば、あとはメンバーリストに行追加する際に、そのリストにすでに追加しようとしているメンバーが含まれているかどうかを判定できます。「条件」をつかって、含まれていない場合にだけ行を追加しました。
image.png

最後に動作確認

最後に複数の取得グループIDをリストに追加して実行。ちゃんと重複せずにメンバーを取得することができました!
image.png

3
2
0

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
3
2