PowerAutomateを使って、Outlookで受信したメールをSharePoint上のExcelに記帳する方法【空白、改行削除】

PowerAutomate

PowerAutomateを使ってOutlookで受信したメールをExcelに記帳できるようになったけど、メール本文から上手く文字を抽出できない。メール送信者が空白や改行を勝手に行うので、Excel台帳に反映させると、空白(スペース)や改行が反映されてしまい、見にくい。

空白や改行は簡単にreplaceを使って消すことができます。そのやり方をご紹介します。

事例

Outlookでメール(件名が「請求書」と記載されているもの)を受信したら、SharePoint上にあるExcelファイルの各項目を入力する作業を自動化することとします。

このとき、Excelファイルの各項目は、受信日、送信者、請求者、請求金額とします。受信日はOutlookメールを受信した日、送信者はメールの送信者としますが、請求者と請求金額は、次のとおりメール本文の一部から抜き出します。

しかし、次のようなメールを送ってくる人が多いので改善したいと考えています。

上記のメールを受信すると、こうなってしまう。

※前提条件として、Outlook、SharePoint、Excelも使って対応するやり方になります。

事前準備

事前準備として、スペースや改行を考慮せず、フローを作成します。その作り方は以下の2つの記事をご参考ください。

対策

1)スペース削除

①Htmlからテキスト(本文)とテキストの位置の検索(請求者)の間の+をクリックする。

②変数を初期化するを選択する。

③各項目を入力する。件名には(空白削除)と入れる。名前は空白削除、タイプは文字列、値はfxを入れる。

※気を付ける点として、タイプは文字列になるので、注意してください。

④コードには、replace(body(‘Htmlからテキスト_(本文)’),’ ’,”)と入力する。

※body(‘Htmlからテキスト_(本文)’)は動的コンテンツから選択します。

※「’ ’」は間にスペースを1つ入れ、「”」は間にスペースを入れません。これにより、スペースありが、スペースなしに代わるという指示になり、スペースを消すことができます。

※スペースには全角スペースと半角スペースがあるので、2つ同じアクションを追加すると便利です。

2)改行削除

①変数を初期化する(空白削除)とテキストの位置の検索(請求者)の間に変数を初期化するを追加する。

②項目を入力する。件名には、(改行削除)を追加し、名前は改行削除、タイプは文字列、値にはfxを入れる。

③コードには、次のとおり入力する。

replace(replace(replace(variables(‘空白削除’), decodeUriComponent(‘%0D%0A’), ”), decodeUriComponent(‘%0A’), ”), decodeUriComponent(‘%0D’), ”)

※このままデータを入れた方が楽です。variables(‘空白削除’)は変数を初期化する(空白削除)で用いた文字列となります。

3)Htmlからテキスト(本文)を引用している箇所を変数(改行削除)に置き換える

上記手続きによりスペースと改行がない文字列が「変数(改行削除)」で作られたので、今まで使用していた「Htmlからテキスト(本文)」を置き換えていきます。

テキストの位置の検索置換

部分文字列置換

4)テスト

では実際にテストしていきます。すると、スペースと改行がなくなり反映されます。

まとめ

以上がスペースと改行を消す方法です。そんなに難しくはないかと思います。次に、この台帳自動化で困ることは、返信や転送メールも反映されてしまうことかと思います。次回は、返信や転送メールは受け付けなくする方法を解説したいと思います。

コメント

タイトルとURLをコピーしました