[Teamsと連携!] Excelファイルのメールアドレスから人をチームに追加する

## このメンバーでチーム作っといて！
新しくチームを作成する際や、大勢のメンバーをチームに追加する必要がある時に「面倒だなぁ」と感じた事はありませんか？
「このメールアドレスの人達を全員チームに追加しておいて」とExcelファイルを渡されて頼まれ、中身を開いたら200人もいる…!?そんな時こそPower Automateの出番です！

新しくチームを作成した際や、既存のチームに人を追加する際に、[一人ひとりのメールアドレスを追加していく以外にも、「配布リスト」「セキュリティグループ」そして「Microsoft365グループ」を選ぶ事](https://support.microsoft.com/ja-jp/office/teams-%E3%81%A7%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%82%92%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B-aff2249d-b456-4bc3-81e7-52327b6b38e9)が出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/8ab87d66-db52-2a2a-d208-a4333c6f17b7.png)
しかし、エンドユーザーが「配布リスト」「セキュリティグループ」「Microsoft365グループ」にそれぞれ誰が入っているのかを把握することは難しいでしょうし、そもそも期待するメンバーだけが入っているそのようなグループが無い場合もあります。

今回は、IT部門に何かを依頼することなく、手持ちのExcelファイルに入ったメールアドレス一覧をチームに追加したい！というニーズをPower Automateで叶えてみましょう。

流れとしては、こんな形です。
1. Teamsでチームを作成（あるいは既存のチームを利用）
1. ウェブ版のExcel上にメールアドレス一覧を貼り付ける
2. Excelの中にテーブルを作成
3. テーブルの中身を一括で取得
3. 取得したデータにループ処理をして、一行づつチームに追加する
3. 一気に処理する際にエラーが起きるのを防ぐように、待ち時間を設定 

それではやっていきましょう！
### チームを作成しておく
まず、メンバーを追加するために、事前にTeamsでチームを作成しておきましょう。
プライベートで[チームを作成する手順](https://support.microsoft.com/ja-jp/office/%E5%88%9D%E3%82%81%E3%81%8B%E3%82%89%E3%83%81%E3%83%BC%E3%83%A0%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-174adf5f-846b-4780-b765-de1a0a737e2b
)はこちらを参考にして下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/3429437f-6c17-9159-031c-fc787a5e6539.png)
無事、自分が所有者になり、自分以外誰も入っていない空っぽの「てすとやねん」という名前のプライベートチームが作成されました。（ネーミングセンスに絶望しますが、スクリーンショットを撮ってしまった後なのでご容赦下さい…）
### ウェブ版Excelで、メールアドレス入りのファイルを作成
ウェブ版のExcelで、メールアドレスの入ったファイルを作成しましょう。ブラウザで、[ウェブ版のExcelにアクセス](https://www.office.com/launch/excel)します。
ログインを求められたら、Microsoft 365のアカウントでサインインし、「新しい空白のブック」を選択して新規ファイルを作成します。ここに作成したファイルは、個人のOneDrive for Businessに自動保存されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/c79c643c-fecc-e831-6c00-c4dcc7b62267.png)
Excelの列にメールアドレスを羅列していきます。別の形式でメールアドレスをもらっている場合は、コピー＆ペーストで大丈夫。
次に、Excelファイルの中のデータをテーブル形式にしておく事で、データを扱いやすくします。
方法は、メールアドレスを記載した列のデータが入っている部分だけを選択し、「テーブルとして書式設定」を選ぶだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/2cc418b1-e9b4-7c00-22bb-4cd03a5e160a.png)
ファイル名と列名も分かりやすく「email」と変えておきましょう。ファイル名は左上をクリックすることで変更出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/92213fb7-3210-0895-451b-8d2fe949bcc8.png)
### Power Automateでこのメンバーをチームに追加
いよいよPower Automateの登場です。
まず[Power Automateのページ](https://japan.flow.microsoft.com/ja-jp/)に移動し、「作成」から「インスタントクラウドフロー」をクリックします。これは今から作るフローをスタートさせる際に、どのようなきっかけでスタートさせるかを指定しています。今回は「ぽちっ」っとスタートするイメージなので、指でボタンを押しているアイコンの手動トリガーとなる「インスタントクラウドフロー」を選びました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/fe892e62-99d5-3826-fca6-cc975a90b7af.png)
このフローをスタートする方法を選びますので、「手動でフローをトリガーします」をチェックして、「作成」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/5a5c6894-1cad-739c-d68d-8f984879ecd7.png)
「新しいステップ」をクリックして、次の手順を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/2c448636-365d-1b28-899d-b12e12d5aec5.png)
「操作を選択して下さい」という灰色のフレームが出てきますので、そこから「Excel Online」を選択します。見当たらなければ「コネクタとアクションを検索する」でExcelというキーワードで検索してみて下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/fe6b267f-43d4-18a7-b3bd-62d63bba7c3f.png)
アクションとして「表内に存在する行を一覧表示」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/25edb717-3a9f-6f0c-ee64-41f365ddfd59.png)
Excelファイルの場所と、ファイル内の表を指定します。それぞれプルダウンで選択が出来るので、選んで行きましょう。「場所」は「OneDrive for Business」を選択します、これは自分のOneDrive for Businessを指定していて、最初のステップで作成したファイルの置かれている場所になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/b89fa4c1-2c3e-8b81-41db-9dec00318153.png)
ファイル名も、フォルダアイコンをクリックすると選択する事が出来るようになります、今回はメールアドレスが入っている「email.xlsx」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/a3566e7f-42e1-72ac-73a4-1e4ea1d5508d.png)
ここで一点注意ですが、デフォルトですと[行数が256行を超えるデータは処理することが出来ません](https://docs.microsoft.com/ja-jp/connectors/excelonlinebusiness/#list-rows-present-in-a-table)。もしメールアドレスが256行以上ある場合は、「表内に存在する行を一覧表示」の右上にある「…」から「設定」を選択し[「改ページ」を変更頂く必要](https://docs.microsoft.com/ja-jp/connectors/common/known-issues#pagination-support)があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/7710afa7-b4ac-5b47-d492-e41345301bfb.png)
「改ページ」のトグルをオンにして、「しきい値」に、Excelに入っているメールアドレスの数（行数）を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/8eb38814-913c-d162-198d-e89abda8b2ad.png)
繰り返しになりますが、Excelの中に入っているメールアドレスの量が255行以下であればこの設定変更は必要無く、デフォルトのままご利用頂けます。

さて、「新しいステップ」で、もう一つステップを追加しましょう。先程と同じように、「操作を選択してください」という灰色の枠が出ますので、「コントロール」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/67d996ed-284a-9935-4a78-4ac0685b7fba.png)
更に「Apply to each」を選択します。これは、Excelから取ってきたメールアドレスの一覧のうち、「一行づつ取り出して処理をするよ」という命令です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/6aae2b97-a6ec-79de-818b-245712e46ded.png)
Excelの表から取ってきた「アイテムの一覧」である「value」を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/fb87fb76-ba5f-1927-f0ca-1e3f0815e54d.png)
次に「Apply to each」の灰色の枠の中にある「アクションの追加」を選択し、「操作を選択してください」から「Microsoft Teams」を選択します。（「新しいステップ」は追加しません、あくまでも「Apply to each」の入れ子として「操作を選択してください」を選びます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/60bf8a99-d9bb-a583-cb78-152ae1220f81.png)
Microsoft Teamsのアクションとして「チームにメンバーを追加する」があるのでそれを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/3706d27d-45e2-de12-43f2-8cd9e82c1ec8.png)
すると、チーム名と、ユーザーIDを聞かれますので、チーム名は一番最初のステップで作成したプライベートチームの名前をプルダウンから選択し、ユーザーIDには、「動的なコンテンツ」から「email」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/9c602653-75fa-8fa1-55ec-1c0b81ffd8b4.png)
これで「Excelの指定した表から全ての値を持ってきて、各行ごとに入っているデータをもとにメンバーを追加する」というフローが出来ました。
こちらのフローを実行する前に、念の為「待ち時間」を入れておきましょう。もし追加するメンバーが大量だった場合、想定外のパフォーマンスエラーが発生する事を防ぐ目的です。「スケジュール」というステップを追加して「待ち時間」を1秒に設定しておきます。これで一人追加した後1秒待ってから次の人を追加する、という仕組みになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/335ebebb-ab0c-2338-685e-c5a123fef552.png)

一番下にある「保存」ボタンを押して、保存して完成です。
右上の「テスト」ボタンをクリックすると、今作成したフローが実行されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/65da8a01-08a5-1df9-e531-b914ac98a014.png)
Teams側で、チームを見てみると、確かにExcelに羅列されていたメールアドレスの人達が無事チームに追加されている事が確認出来ました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/e22ffd2f-8b28-440c-9663-8894200577f2.png)
### (おまけ) 作ったフローを他の人に共有するには
自分が作成したフローの便利さに感動し、他の人も使えるように共有するにはどうしたらいいでしょうか。
まず、Power Automateの「マイフロー」から共有したいフローを選び、「共有アイコンを選択します」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/1718907b-fccd-f153-5c32-18783e6dcc99.png)
「ユーザーまたはグループを所有者として追加する」という画面が出てきますので、そこで共有したい相手のメールアドレスを入力します。
共有された側の人のPower Automateでは、このように「共有アイテム」に、先程共有されてきたフローが表示されるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/3d90cd59-6e54-d0a1-f485-f232c0ffa1d9.png)
注意点1. 
メールアドレスが記載されているExcelファイルの場所と名前は、共有した側の人のOneDrive for Businessの中にあるファイルとして指定されています。他の人に共有した場合は、共有された側の人のOneDrive for Businessの中に同じ名前のExcelファイル（この例では「email.xlsx」）を用意しましょう。
また、フローをもらった側の人が、自分のOneDrive for Businessの場所を指定するには、共有されたフローに表示されている鉛筆アイコンの「編集」を押して、フローを編集する必要があります。
今回はフローの中で指定していたExcelファイルの場所を、共有してくれた人のOne Drive for Busiessから自分のOneDrive for Businessに付け替えたいので、「表内に存在する行を一覧表示」のステップの右上にある「…」をクリックします。そこで「マイコネクション」と表示されている接続にチェックを入れましょう。これで、共有前の所有者のOneDrive for Businessから、自分のOneDrive for Businessへの接続に変更できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/eb8c8a0d-6f0d-0241-7e93-ff4ab91148f7.png)

注意点2.
メンバーを追加する先のチームは、自分がチームメンバーを追加できる権限を持っている必要があります。つまり、自分が所有者であるか、メンバーの場合でも他のメンバーの追加が出来る権限を持っている必要があります。
指定するチームを変更したい場合は、フローを編集して指定するチームを変えます。
下の画像は、メンバーを追加するチームを「Power Autaomte好き」というチームに変更しているところです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1516172/f41037dd-5266-636b-2dcc-c371ac6ebf4e.png)

これで4月の人事異動も怖くない。新しく追加された皆さんとのコミュニケーションをTeams上でお楽しみ下さい！

本シリーズの目次はこちら：
https://qiita.com/Asuka_Nagamine/items/e94131a2be4878b65deb