Power Automateで受信メール転記|本文の切り出し方

Power Automateで受信メール転記|本文の切り出し方

注文メールや問い合わせメールが届くたびに、担当者がメールを開いて件名と本文を目で追いながらExcelへ手入力している、という状態になっていませんか。

1日数件なら手間は気になりませんが、件数が増えると転記漏れや金額の書き間違いが起こりやすくなります。

この記事では、Power Automateで受信メールの本文をExcelへ自動転記する手順と、本文の形式がバラバラなときにぶつかる限界について整理しています。

受信メール転記の自動化を無料で相談する

完成イメージ

対象の条件に合うメールが届くと、件名や送信者、本文から切り出した値が、数秒後にはExcelの一覧表へ1行として追加されている状態がゴールです。

注文メールなら注文番号や商品名、問い合わせメールなら相手先や要件といった項目を、開かずに一覧で確認できるようになります。

担当者が受信トレイを1件ずつ開いて内容を拾う作業がなくなるため、件数が読めない業務ほど効果の実感につながりやすいのが特徴です。

ただし、この仕組みが成立するのは、メールの本文がある程度決まった書き方をしている場合に限られる、という前提があります。

その前提を踏まえたうえで、事前準備から見ていきましょう。

事前準備(Excelテーブル化)

Power Automateで受信メール転記に使うのは、Excel Online(Business)コネクタの「テーブルに行を追加する」というアクションです。

このアクションは、対象のExcelファイルを開いてもテーブルの一覧に何も表示されない状態だと動きません。

テーブル単位でしかデータを書き込めない仕様になっているため、先にファイル側の準備が必要になります。

転記先のExcelファイルをまだ作っていない場合は、1行目に列見出しを入力し、その範囲を選択した状態で「挿入」タブから「テーブル」を選んでテーブル化しておきます。

列見出しは、本文から切り出す予定の項目(注文番号・商品名・数量など)と同じ並びにしておくと、後の手順で迷いません。

メール本文を転記する手順

事前準備が終わったら、トリガーから行追加までを順番に組んでいきます。

Step1. 対象メールをトリガーにする

Power Automateで新しいフローを作成し、トリガーに「Office 365 Outlook」の「新しいメールが届いたとき(V3)」を設定します。

「差出人」や「件名フィルター」を使うと、注文メールや問い合わせメールなど対象の条件だけに絞り込めるので、最初にここを固めておきましょう。

フィルターを設定しないと関係のないメールでもフローが動いてしまい、後の手順で余計な処理が増えてしまいます。

Step2. 本文をプレーンテキストに変換する

メールの本文はHTML形式で届くことが多く、タグが混ざったままだと値の切り出しがうまくいきません。

「HTMLからテキストへの変換」アクションを追加し、トリガーが取得した本文をプレーンテキストに変換しておきます。

以降の手順は、この変換後の本文に対して処理を組んでいく流れです。

Step3. 本文から値を切り出す

変換した本文に対して「変数を初期化する」アクションで文字列型の変数をいくつか用意し、indexOf関数とsubstring関数を組み合わせて値を切り出します。

たとえば本文に「注文番号:A12345」という一行が含まれているとしましょう。

その場合はindexOfで「注文番号:」の位置を探し、その直後から決まった文字数をsubstringで切り出せば、注文番号だけを取り出せます。

本文が改行区切りになっているなら、split関数で行の配列に分けたうえで対象のキーワードを含む行を探す、という手順に切り替える方法です。

Step4. Excelに行を追加する

「テーブルに行を追加する」アクションを追加し、転記先のExcelファイルと事前準備で作ったテーブルを指定します。

テーブルを選ぶと列見出しと同じ名前の入力欄が自動で表示されるため、Step3で切り出した値をそれぞれ対応する欄に差し込みましょう。

フローを保存したら、実際に対象条件に合うメールを1件送ってみます。

Excelに正しい値で1行追加されることを確認できたら、本運用に移って問題ありません。

受信メールをExcelへ自動転記する設定手順の4ステップ。対象メールをトリガーに→本文をテキスト変換→本文から値を切り出す→Excelに行を追加

本文形式がバラバラなときの限界と対処

ここまでの手順は、メールの本文がある程度決まった書き方をしていることが前提です。

差出人によって書き方が違ったり、同じ差出人でも毎回文言の順番が変わったりすると、indexOfsubstringで狙った位置がずれ、値が正しく切り出せなくなります。

本文形式のばらつきの度合いに応じて、取れる対処は次のとおりです。

本文の状態

取れる対処

特定のキーワードが必ず含まれる定型文

indexOf・substring・splitの組み合わせで対応できる

差出人ごとに書き方が決まっている

差出人ごとに条件分岐を作り、パターンを個別に用意する

書き方が読めない自由記述

AI Builderの文書解析系モデルを検討する(別途ライセンスが必要で、精度は本文次第)

自由記述に近いメールを無理にルールで切り出そうとすると、条件分岐が増え続けてフローの保守が難しくなっていきます。

そこまで崩れている場合は、社内から届くメールであれば送信側のフォーマットを揃えてもらう、社外からのメールであれば件名や本文の一部だけを条件にして一覧化に絞る、といった割り切りも選択肢になります。

Excel側の受け皿を先に作っておきたい場合は、フォーム経由の転記も参考になるはずです。

同じメール転記でもGoogle Apps Scriptで組む場合の手順は、こちらにまとめています。

どの業務から自動化に着手するか迷っている場合は、業務自動化全体の始め方も確認しておくと判断しやすくなります。


受信メールのExcel転記について相談してみませんか?

「本文の書き方がバラバラで切り出しに自信がない」「indexOfやsubstringの組み方が合っているか不安」「社内に自動化を設計できる人材がいない」

少しでもお心当たりがあれば、お気軽にご相談ください。

現在、Power Automateの業務自動化に関するお悩みをお伺いする 無料の個別相談 を実施しています。

よくある質問

Q. 転記先はデスクトップ版のExcelファイルでもいいですか?

OneDriveやSharePoint上に保存したExcelファイルであれば動作します。

パソコンのローカルにだけ保存したファイルは対象にできないため、あらかじめクラウドの保存場所に置いておきましょう。

Q. HTML形式ではなくテキスト形式のメールでも、変換の手順は必要ですか?

テキスト形式のメールであれば、HTMLからテキストへの変換は不要です。

ただし届くメールがHTML形式かテキスト形式か混在している場合は、変換を挟んでおいたほうが後の切り出し処理が安定します。

Q. 添付ファイルの内容もこの手順で転記できますか?

この記事の手順は、あくまでメール本文の文字列から値を切り出す方法です。

添付ファイル内のPDFや画像から数値を読み取りたい場合は、別のアクションや仕組みが必要になります。