ボーカルリムーバーオンライン無料
Power Automate Desktopを体系的に学ぶならUdemy【初回ユーザ限定・最大96%割引】

Power Automateについて詳しく解説します

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

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

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

 

メール本文から任意のテキストを抽出できると様々な業務に応用できますが、その大半は手作業で行うことが多いのではないでしょうか。

 

テキストを抽出するときに正規表現を使えば、あらゆるテキストを自由自在に抽出できます。

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

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

【Power Automate Desktop】メール本文からテキストを抽出する方法

 

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

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

 
Power Automate Desktopで作業自動化の電子書籍を出版しました!
📘ヘルプデスクが面倒な作業を超自動化する全方法 メール自動化編
著:やまもとてつや

Tipstour初の電子書籍化!

37歳で初の正社員となりITヘルプデスクとして勤務中の著者が、Power Automate Desktopを使った8つのメール作業・自動化事例とその方法を本書でご紹介しています。

これを読めば、ヘルプデスクの担当者はもちろん、WindowsPCで作業するすべてのワーカーの面倒なメール作業を自動化可能です。

Kindle Unlimitedで読み放題対象!
(30日間無料体験アリ)

【前提】正規表現とは?

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

単一の文字列だけでなく、特定の文字から文字までの範囲といった複雑な条件でも抽出できます。

 

たとえば、私達が普段何気なく使っている改行も正規表現であれば\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_]

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

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

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

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

 

Outlookであれば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コースを見てみる