シンプル・スマートな画面録画ソフト EaseUS RecExperts
Power Automate Desktopを体系的に学ぶならUdemy【初回ユーザ限定・最大96%割引】

【完全版】Power Automate Desktopでメールを自動化する全方法

  • メール本文からテキストを思い通りに抽出したい
  • 抽出したテキストを使って、Excelに転記したい

当記事では、上記の疑問にお答えします。

 

メール本文から、任意のテキストを抽出できるといろんな業務に応用できます。

ただ、上記の作業ってだいたい手作業になることが多いのではないでしょうか。

 

テキストの抽出には正規表現を使うと、自由自在に任意のテキストを抽出できます。

そこで当記事では、Power Automate Desktopで正規表現を使ってメール本文からテキストを自由自在に抽出する方法を解説します。

抽出したテキストをExcelに転記する応用も解説しますので、ぜひ1度読んでみてください。

 

なお、Power Automate Desktopの利用方法・起動方法は、以下の記事をご覧ください。

 当記事に記載した手順は、すべてPower Automate Desktopの無料版で作成した手順です

【前提】正規表現とは?

正規表現は、あるテキストを検索したり抽出したりするために使う方法です。

単一の文字列だけでなく、ある文字からある文字まで範囲など複雑な条件下にある文字列も抽出できます。

 

たとえば、私達が普段何気なく使っている改行も正規表現であれば\r\nと書きます。

 

Power Automate Desktopでは、.NETの正規表現を使って任意のテキストが抽出可能です。

テキスト抽出に使う正規表現一覧

テキスト抽出によく使う正規表現を表にまとめました。

下記にあげた正規表現以外を知りたい場合は、Microsoftが提供しているクイックリファレンスをご覧ください。

正規表現 説明
\r\n Windows形式の改行にマッチする Hello
world
\d 数字にマッチする 1234, 5, 9
\w 単語構成文字にマッチする(英数字とアンダースコア) hello, world_123
\s 空白文字(スペース、タブ、改行など)にマッチする Hello world, Hello world, Hello\nworld
. 改行以外の任意の1文字にマッチする hoge, 123, あ
[...] 角括弧内の任意の文字にマッチする [abc], [0-9], [a-zA-Z0-9_]

【方法】正規表現を使ってメール本文から任意のテキストを抽出する

では、実際に正規表現を使ってメール本文から任意のテキストを抽出してみましょう。

下記4ステップに分けて解説いたします。

【ステップ①】抽出したいテキストのあるメールを絞り込む

まずは、抽出したいテキストのあるメールを特定しましょう。

 

OutlookであればOutlookアクションのメールメッセージを取得を使います。

その他のメーラーであれば、メールアクションのメールメッセージの取得を使います。

 

どちらもメールフィルターを使用して、件名や送信元などでメールを絞り込むのは共通です。

今回は下記のメール署名を使って、抽出してみます。

power_automate_desktop_extract_text_from_email_body_using_regular_expression1

それぞれのメール取得方法は下記の記事を参考にしてください。

Outlook以外のメール取得方法はこちら

【ステップ②】メールの本文を取得する

署名欄の:以降をそれぞれ抽出してみましょう。

取得したメールは変数RetrievedEmailsに格納されますが、単体ではテキストを抽出できません。

 

そこでFor Eachを使ってテキストをリスト化する必要があります。

ループアクション欄にあるFor Eachを中央にドラッグアンドドロップしてください。

power_automate_desktop_extract_text_from_email_body_using_regular_expression2

下記画面に変わったら、そのまま保存します。

power_automate_desktop_extract_text_from_email_body_using_regular_expression3

これでメールが変数CurrentItemに格納され、プロパティを使って本文が取得可能になりました。

メール本文はBodyTextプロパティを使って取得します。

 

なお、この手順は取得したいメールが1つだけでも必要なので必ずやりましょう。

【ステップ③】正規表現を使って任意のテキストを抽出する

メール本文を取得できる準備が整ったら、いよいよテキストを抽出します。

 

For Eachアクション内に、テキストアクション欄にあるテキストの解析をドラッグアンドドロップします。

power_automate_desktop_extract_text_from_email_body_using_regular_expression4

以下画面に切り替わります。

power_automate_desktop_extract_text_from_email_body_using_regular_expression5

まずはNAME:にある名前を抽出したいので、ひとまず以下のように入力してください。

  • 解析するテキスト:%CurrentItem.BodyText%
  • 検索するテキスト:\r\nNAME:.*\r\n
  • 正規表現である:オン

メール本文はCurrentItemにBodyTextプロパティをつけて抽出できます。

 

検索するテキストが当記事のハイライトになるので、順を追って解説します。

まず、\r\nは改行を表す正規表現です。

 

次に.*ですが.(ドット)は:以降の任意の1文字を指し、.に*(アスタリスク)をつけると改行までの文字列が全て取得できます。

 

フローを実行すると、抽出したテキストは変数Matchに格納されます。

power_automate_desktop_extract_text_from_email_body_using_regular_expression6

以降同じ手順を3回行うので、変数名をNameに変えましょう。

生成された変数のMatchをクリックしてください。

power_automate_desktop_extract_text_from_email_body_using_regular_expression7

画面が変わるので、再度Matchをクリックして編集します。

power_automate_desktop_extract_text_from_email_body_using_regular_expression8

 

編集できるようになるので、%間でNameと入れましょう。

power_automate_desktop_extract_text_from_email_body_using_regular_expression9

編集したら、再度フローを実行してみましょう。

変数Nameを確認すると以下のようになっています。

power_automate_desktop_extract_text_from_email_body_using_regular_expression10

このままExcelに転記すると改行も入ってしまうので、改行を処理する手間がかかります。

改行を取り除くため、テキストアクション欄にあるテキストのトリミングをドラッグアンドドロップしましょう。

注意点としてテキストのトリミングは2種類あり、下にあるテキストをトリミングをドラッグアンドドロップしてください。

power_automate_desktop_extract_text_from_email_body_using_regular_expression11

画面が変わったら、トリミングするテキストに先ほどの変数Nameを入力します。

power_automate_desktop_extract_text_from_email_body_using_regular_expression12

生成された変数はNameに変えておきます。

power_automate_desktop_extract_text_from_email_body_using_regular_expression13

変数を再度生成すると中身だけが変わるので、同じ変数名にして管理しやすくするのが狙いです。

ここまで入力してフローを実行するとNameは下記画像のようになっています。

power_automate_desktop_extract_text_from_email_body_using_regular_expression14

最後にNAME:を消しましょう。

テキストアクション欄にあるテキストを置換するをドラッグアンドドロップしてください。

power_automate_desktop_extract_text_from_email_body_using_regular_expression15

画面が変わります。

power_automate_desktop_extract_text_from_email_body_using_regular_expression16

以下のように入力してください。

  • 解析するテキスト:%Name%
  • 検索するテキスト:NAME:
  • 置き換え先のテキスト:%''%

置き換え先のテキストは%間に入力します。

NAME:を削除したいので、空白を表す''を入力しましょう。

入力したら変数ReplacedをNameに変更するのも忘れないでください。

 

ここまでできたら、フローを実行します。

Nameは下記画像のようになっているはずです。

power_automate_desktop_extract_text_from_email_body_using_regular_expression17

あとは署名の項目だけ同じようにフローを作りましょう!

と、いいたいところですが全部同じでは芸がないのでBLOG URLの項目だけ少し変えてみましょう。

 

BLOGとURLの間には、半角スペースがあります。

わざわざBLOG URLと検索しなくてもいいので、URLだけを取得しましょう。

したがって、BLOG URLで検索するテキストは下記になります。

\sURL:.*\r\n

トリミング時はトリミング対象を末尾の空白文字に変更しておきましょう。

power_automate_desktop_extract_text_from_email_body_using_regular_expression18

ここまでフローを作成すると下記のようになります。

power_automate_desktop_extract_text_from_email_body_using_regular_expression19

6以降です。

power_automate_desktop_extract_text_from_email_body_using_regular_expression20

最後です。

power_automate_desktop_extract_text_from_email_body_using_regular_expression21

【ステップ④】Excelに転記する

全て抽出し加工したら、Excelに転記してみましょう。

 

管理がしやすくなるように、Excelの転記だけはサブフローにまとめておきます。

中央にあるサブフローをクリックして、新しいサブフローをクリックしてください。

power_automate_desktop_extract_text_from_email_body_using_regular_expression22

サブフロー名をつけたら、保存します。

power_automate_desktop_extract_text_from_email_body_using_regular_expression23

自動で作成したサブフローに移ります。

Excelアクションにある、Excelの起動を中央にドラッグアンドドロップしましょう。

power_automate_desktop_extract_text_from_email_body_using_regular_expression24

画面が切り替わるので、そのまま保存します。

次にExcelワークシートに書き込むをドラッグアンドドロップします。

power_automate_desktop_extract_text_from_email_body_using_regular_expression25

画面が変わったら、書き込む値に今までに加工した変数を入れていきます。

今回は変数を下記のようにしました。

  • 名前:Name
  • 電話番号:Tel
  • メールアドレス:Mail
  • URL:Url

そして、以下のように入力します。

  • 書き込む値:各変数
  • 書き込みモード:指定したセル上
  • :2(変数ごとに1ずつ足してください)
  • :2

すると、作成したサブフローは下記のようになります。

power_automate_desktop_extract_text_from_email_body_using_regular_expression29

ここまで入力できたら、いったんMainフローに戻ります。

フローの最後にフローコントロールアクションにあるサブフローの実行をドラッグアンドドロップします。

power_automate_desktop_extract_text_from_email_body_using_regular_expression26

画面が変わったら、先ほど作成したサブフローを選んで保存します。

power_automate_desktop_extract_text_from_email_body_using_regular_expression27

ここまでできたらフローを実行しましょう。

すると下記のようになります。

power_automate_desktop_extract_text_from_email_body_using_regular_expression28

抽出したテキストをExcelに転記できました!

まとめ

以上、メール本文からテキストを抽出し、Excelに転記するまでの手順を解説しました。

 

正規表現は覚えるのが大変ですが、慣れてくるとこれ以上に便利なものはありません。

今回、紹介したケースはあくまで一例なので勉強してもっと効率的な取り出し方ができるようになると、より仕事がしやすくなるでしょう。

 

またExcelの転記についても、今回は新規ファイルを作って転記しましたがあらかじめ見出しを用意したExcelファイルを使っても構いません。

ぜひ、今回の内容をもとに色々と試してみてください。

 
より詳しくPower Automate Desktopを学びたいと思ったら

Power Automate Desktopでの作業自動化について、より体系的に詳しく学んでいきたいと感じたら、Udemy(ユーデミー)が最適です。

Udemyはアメリカ発のWebラーニングサイトで、日本語のコースを含め、世界各国の言語でそれぞれの専門家のコースを動画形式で学ぶことが出来ます。

もちろんPower Automate Desktopの日本語コースも公開されており、すでに約300のコースがUdemyで公開・閲覧されています。

Udemyの豊富なPower Automate Desktop学習コース

Udemyは個人ユーザだけでなく、企業のeラーニングでも広く利用されています。

企業レベルのコースを受講することで、Power Automate Desktopの自動化テクニックを体系的に習得することが可能です。

 

Power Automate Desktopのコースは、業務に関連するジャンルのため1〜2万円台が一般的ですが、初回に限り、好きなコースを2000円で受講可能です。

無料で各コースの冒頭を視聴できるので、まずはUdemyにどのようなコースがあるのか、ぜひチェックしてみてください。

 

  UdemyのPower Automate Desktopコースを見てみる