見出し画像

Power Automateで効率化!フォルダ内の添付ファイルを自動メールで送信

AI関連の進歩は非常に早く、次々と新たなサービスが誕生していますが、AIに頼る前に自動化できることはまだまだ非常に多いと感じています。本記事では、RPAのアプリケーションであるPower Automateを使って、指定フォルダ内にある複数のファイルを添付してメールで送信する方法をお伝えいたします。


RPAとは?

Robotic Process Automationの略で、複数のアプリケーションをまたがって自動化することができるのが特徴です。

自動化としてよく挙げられるものにExcelのVBAなどがあると思いますが、VBAはあくまでのExcelというアプリケーションの中での自動化です。
RPAを使うと複数アプリケーションにまたがって処理を自動化することができるため、例えばある条件のメールを受け取った後、エクセルの処理を行って、その結果をTeamsへ連絡するなど、幅広い処理を自動化することが可能になります。

さっそく作ってみよう!

上記のように幅広い業務に拡張できるRPAなのですが、よりよく理解するためには実際に手を動かしてどういうものなのか体験することが一番です。

今回のアプリケーションを構築するにあたり、必要なアプリケーションは以下の通りです。

必要なアプリケーション

  • Microsoft Office 365

  • Microsoft Power Automate

  • Microsoft Excel

  • Microsoft Outlook

  • Microsoft OneDrive

アプリケーション概要

顧客リストの顧客へ、複数のファイルをEメールに添付し、メールを送信するアプリケーションです。

- 添付ファイル:
OneDriveの特定のフォルダに保存しておきます。今回は、ルートディレクトリの下に「Attached Files」フォルダーを作成し、その下に添付したいファイルを保存しておきます。

OneDrive - "ルートディレクトリ"\Attached Files

- 顧客リスト:
クラウド上にあるExcelに顧客情報を保存しておきます。
OneDrive - "ルートディレクトリ"\TestContact.xlsx

顧客リスト

Power Automateで複数行のデータにアクセスする際には、テーブル名が必要になります。
データを入力後、テーブルを選択してから「テーブルデザイン」タブを確認すれば、テーブル名を見ることができます。下の図だと「テーブル1」がテーブル名です。

テーブル名を確認

作業フロー

作業の流れは以下のようになります。

1.時間をトリガーに動作を開始します。(例 毎日10:00)
2.「Attached Files」フォルダーにアクセスし、添付ファイルデータを取得します。
3.顧客リストのExcelにアクセスし、顧客リストデータを取得します。
4.顧客ごとに以下の作業を繰り返します。
5.添付ファイルをメールに添付し、顧客に送ります。

作業手順①(顧客リストにEメールを送信:添付ファイルなし)

まずは、顧客リストに沿って、添付ファイルなしでEメールを自動で送信する方法までを説明し、その後にファイルの添付方法について触れていきます。

Power Automateにログインしてください。
左のメニューから「作成」を選択し、「スケジュール済みクラウドフロー」を選択します。

フロー名を入力し、繰り返し間隔を「1」「日」とします。

作成すると、Recurrenceという項目が1つできています。
Recurrenceとは、一般的には「再発」や「再現」を意味し、繰り返しスケジュールされたタスクがここから始まることを示しています。
「+」のボタンを押して「アクションの追加」を行います。

追加するアクションで、顧客リストのExcelから顧客リスト一覧を取得します。
検索に「Excel」と入力し、「さらに表示」をクリックしてください。そうすることで見えていないアクションが表示されます。

*Power AutomateにはExcel Onlineは2種類あります。BusinessとOneDriveと表示されており、会社などの組織でご利用される場合はBusiness、個人でご利用される場合はOneDriveを選択して下さい。

表示されたアクションの中から「表内に存在する行を一覧表示」を選択します。

表示に沿って以下のようにパラメータを設定してください。

*初めてのPower Automateをご利用になる場合、パラメータの下側にある接続の設定を行ってください。

上記を完了するとフローに「表内に存在する行を一覧表示」というアクションが追加されます。ここからさらに「アクションの追加」を行います。

検索窓に「Outlook」と入力し、「Office 365 Outlook」の「メール送信(V2)」をクリックします。

メール送信(V2)の設定画面

このタイミングでフローを確認すると、「メール送信(V2)」というアクションが追加されたことが確認できます。

では、フローからメール送信(V2)の設定画面に注目を戻してください。
宛先から入力していきましょう。宛先右にある下矢印をクリックすると、No Itemsの下に、「カスタム値の入力」と出てきますのでそこをクリックします。すると左側に雷マークfxというのが出てきます。雷マークをクリックしてみましょう。
雷マークは変数を選択できるところで、fxは関数を選択することができます。
右側に現れた変数の中から、「Contac Email」をクリックしてください。

この動作により、宛先に「Contact Email」が挿入されます。
ここで、再度フローの方を確認してください。先ほどはなかった「for each」というものが追加されています。
これは繰り返しを示すもので、その前に取得したExcelのリストについて、行ごとに繰り返し内にある作業を繰り返すことを示します。
このプロセスによって、リスト内のメールアドレスに従って反復して自動でメールを送信する作業が可能になります。

メール送信(V2)に戻って、入力を進めていきます。
件名:添付を送ります。
本文:本文には、送信先メールアドレスに対応する名前を書き込みたいので、こちらでも雷マークを使います。「Last Name」を選択して、顧客リストの苗字を取得し、メール本文で使えるようになります。

このような設定になっているでしょうか?
これで顧客リストに従ってメールを送れるようになりました。
(下の画像の通り、Last NameとFrist Nameを間違って選択してしまったようです…)

添付ファイルはどのように添付されるのか?

ここから先は、このメールにファイルを添付していきます。

メール送信(V2)の下の方にある、「すべてを表示」をクリックすると、「添付ファイル」という項目が見つかります。

さらに「新しい項目の追加」をクリックすると、添付ファイルの「名前」と「コンテンツ」を入力する欄が出てきます。
さらに、右上「T」が書かれている部分をクリックしてビューを切り替えると、以下のにJason形式で添付ファイルの情報が表示されています。

添付ファイル情報

こちらが添付ファイルのJason形式による情報です。ファイルを添付する場合には、この「名前」と「コンテンツ」のデータを与える必要があります。

{
  "Name": "ファイルの名前",
  "ContentBytes": "ファイルのコンテンツ"
}

すでに顧客リストの顧客にメールを送付する方法は完成していますので、このフローに「Attached Files」フォルダー内にある添付ファイルを添付する流れを足していきます。

変数を登場させる

メールのファイル添付方法で確認した通り、メールの添付にはファイル名とコンテンツのデータを引き渡す必要があります。1つ1つファイルを送る場合は、ファイル名とコンテンツを直接指定すればよいのですが、添付ファイルが複数あって、そのファイル名が事前にわかっていない場合はこのように直接記入することができません。
そこで、添付するファイルのデータを一時的に格納しておく配列型の変数を用意します。

  1. 配列型の変数を用意

  2. 「Attached Files」フォルダーから添付ファイルリストを取得

  3. 添付ファイルデータを取得

  4. 配列変数に添付ファイルデータを格納

  5. メール送信で配列変数を渡し、ファイルを添付して送信

添付ファイル変数の1番 { "Name" : 1番目のファイル名,  "ContentBytes": 1番目のコンテンツ }、添付ファイル変数の2番 { "Name" : 2番目のファイル名,  "ContentBytes": 2番目のコンテンツ } というように変数に値を入れていっています。
*正しくは、配列は0番から始まりますが、その辺りは今のところ気にする必要ないです。

作業手順②(ファイルを添付する方法)

「Recurrence」の下にアクションを追加します。

検索窓に「変数」と入力し、「変数を初期化する」を選択します。見つからない場合は、「さらに表示」をクリックして表示を増やしてみてください。

変数の設定:添付ファイルに関するデータを格納しておくための変数なので、「Attachments」とでもしておきます。Typeは、「Array」を選択してください。また、Value欄には初期値として空の配列を入力します。「[]」と入力してください。半角のカッコです。

続けて、「変数を初期化する」の下に「アクションの追加」からアクションを追加します。

OneDriveを検索し、「フォルダー内のファイルのリスト」を選択します。

OneDriveはBusiness(OneDrive for Business)と個人用(OneDrive)があるので、ご自身がどちらを使用しているか把握したうえでアクセスしてください。

添付ファイルの場所は、ルートディレクトリの下の「Attached Files」にしましたので、そこを選択します。

フォルダーの設定が終わりましたら、次にファイルコンテンツを取得するアクションを追加します。

先ほど同様にOneDriveを検索し、今度は「パスによるファイルコンテンツの取得」を選択します。

パラメータのファイルパスは雷マークをクリックして「フォルダー内のファイルリスト」から「パス」を選択してください。

「パス」を設定すると、フローの方にも繰り返しが追加されていることが確認できます。
続けて「アクションの追加」をして、変数を操作します。

検索窓に「変数」を入力し、「配列変数に追加」を選びます。

Nameは左側の下矢印からAttachmentsを選択してください。
その後のValueが少し難しいところです。まずは、以下の通り記入してください。これは、上記の添付ファイルの記入の仕方を確認したときの方法を使っています。

{
  "Name": ,
  "ContentBytes": 
}

次に”Name"の値を入力します。「"Name": 」の後にスラッシュを半角(/)を入力します。 →  "Name": /,  のようになります。
半角スラッシュ(/)は雷マークと同じ意味で、「動的なコンテンツの挿入」と出てくるので、ここに変数を選択することができます。

選択できるものが表示されますので、「フォルダー内のファイルの…」下にある「名前」を選択します。

これで配列変数にファイル名が追加されます。

同様にContentBytesの値も入力します。これで配列変数にファイルの内容が追加されます。

配列変数はこのようになります。繰り返しが終わった際にはすべての添付ファイルが配列変数に格納されていることになります。

あとは、この配列変数をメール送信時に追加するだけです。フローからメールの送信(V2)を編集します。

メールの送信(V2)で、詳細パラメーターの「すべてを表示」をクリックし、添付ファイルの部分を表示させます。さらに添付ファイルの右側にあるTが書かれているマークを押してビューを変更します。

空の状態でもかっこ”[]”などが書かれていると思いますので、すべて削除してく完全な空欄にしてください。その後に、雷マークか半角スラッシュから変数Attachmentsを選択してください。

メール送信(V2)の設定はこのようになります。

ここまででいましたら、フローチェッカーでチェックを行い、テストをしてみてください。こんな感じで結果が出ると思います。

また、送信されたメールが顧客リスト通りで、添付ファイル名、添付ファイルの内容が正しく送られているかを確認してください。

まとめ

ということで、Power Automateを使ってフォルダ内の添付ファイルを自動でEメールで送信方法をお伝えさせていただきました。日々の業務の中で自動でできる部分というのも探せば以外に見つかったりするものです。自動化すること自体に少し時間を割く必要はありますが、一度自動化できるとその恩恵は非常に大きいので、たまには私も自分の業務を振り返って自動化を増やしていきたいと思います。


いいね!やフォローで、ぜひ応援よろしくお願いします!
励みになります!

また、X(旧Twitter)でAIについての雑談を不定期に行っておりますのでフォローをお願いいたします。


いいなと思ったら応援しよう!