Power Automateで業務自動化!

はじめに

初めまして、プロダクト開発統括部 前野です。

 

今回は初のブログ記事執筆となり、拙い文章ではありますが皆様のご参考になれば幸いです。

 

さて突然ですが、みなさんはPower Automateというツールを使ったことはありますか?


私は普段申請や情報をExcelで管理することが多く、
このような毎日繰り返される単純な作業が「自動化されたらいいな」と思い調べたところPower Automateに出会いました。

 

そこで今回はPower Automateでメールの文章を自動でExcelに転記してくれる方法について紹介しようと思います。

 

 

目次

 

Power Automateとは

Power Automate(パワー・オートメイト)」とは、マイクロソフトが提供する業務の自動化ツールで、パソコン業務を自動化できるRPAツールです。

メール(Outlook/Gmailなど)、Teams、Slack、Excel、Google スプレッドシート、Jira、SharePoint、X、YouTubeなど様々なコネクタを利用し誰でも簡単に自動化を実現することができます。

完成イメージ

今回はメールで申請がきた情報を申請者リストというExcelの表に転記していくフローを作成します。

実際の完成イメージとしてはこのような感じです。

申請者リスト

申請メール

申請メールがくる。

リストに情報が自動で追加される。

完成イメージ

 

作成開始!

それでは実際にどのようにしてこのようなフローが出来るのか紹介します。

まずはPower Automateの作成タブの「自動化したクラウドフローを構築する」から作成をします。ここで新しくメールがきた際にフローを開始させたいので「新しいメールが届いたとき(V3)」を選択して作成します。

 

※毎週月曜にフローを実行したい場合や一定のタイミングで実行したい場合は「スケジュール済みクラウドフロー」、手動でフローを実行したい場合は「インスタントクラウドフロー」から作成します。

 

ここからフローの中身を作成していきます。

先程指定した「新しいメールが届いたとき(V3)」の条件を指定します。

ここで言う条件とは「どのようなメールがきたときに、このフローを実行したいか」です。

今回私は「テスト申請」という件名のメールが届いたときにこのフローを実行したいので件名フィルターに「テスト申請」と入力して次のフローにいきます。

 

次にメールの本文からExcelに転記したい文字列の抽出を行います。

ここでは申請者の名前を抽出するフローの説明をします。

「テキスト位置の検索」からメール本文内の抽出したい文字列の位置を検索します。

申請者の名前は「申請者:」の後に書かれてるため、検索テキストに「申請者:」、テキストはメール本文内から検索するため動的コンテンツ内にある本文を選択します。

これでメール本文内の「申請者:」の位置が検索されます。

 

次に申請者の名前がある位置を変数として設定します。

ここではadd関数を使って位置を指定します。

add関数は足し算をする関数で以下のように数字が取れます。

add(7, 3) → 10

 

ここで先程指定した「申請者:」の最初の位置から4を足した数が申請者の名前が始まる位置ですので、変数の値には以下を指定します。

add(outputs('テキストの位置の検索')?['body'],4) → メール本文内「申請者:」の最初の位置から+4した位置(申請者の名前が始まる位置)

これで抽出したい文字列の開始位置は指定できました!

次に何文字抽出するかです。

申請者の名前はそれぞれ長さが違うため、数字では指定できません。

そこでまたテキストの長さの変数を作成します。

申請者の名前は先程指定した開始位置から「案件名:」までです。

ここではsub関数を使って「TextPosition_name(申請者:)」から「案件名:」までの文字列を抽出します。(これで申請者の名前が抽出できます。)

sub関数は引き算をする関数で以下のように数字が取れます。

sub(7, 3) → 4

 

「案件名:」までを使用したいため、こちらも「テキスト位置の検索」で指定します。

 

ここで先程作成した「TextPosition_name(申請者:から4足した位置)」から「案件名:」までの位置の差分を取りたいので、変数の値には以下を指定します。

sub(outputs('テキストの位置の検索_2')?['body'],variables('TextPosition_name')) → 「案件名:」の位置から「申請者:」の位置を引いた数(申請者の名前部分)

これで申請者の名前を抽出する準備完了です!

あとは部分文字列の開始位置に「TextPosition_name」、長さに「Textlength_name」、テキストは本文を指定します。

※文章に改行が入っていて改行されたくない場合はsub関数で「Textlength_name」から1を引いた関数を長さに入れると改行は含まれません。

sub(variables('Textlength_name'),1)

そして最後に表に行を追加で追加したい列の部分に部分文字列を指定します。

これで件名が「テスト申請」のメールが来た際に申請者の名前がExcelに自動で転記されるフローの完成です!

今回は省略しますが、他のセルにも同様の手順を繰り返すことで完成イメージのように行を追加できます。

 

さいごに

Power Automateを使った自動化フローを紹介しましたが、いかがでしたか?

今回はOutlookのメール本文の転記を紹介しましたが、Power Automateでは使用できるコネクタが沢山ありますので他にも多くの業務の自動化が実現できると思います。

実際に私も様々な業務を自動化し、時間削減に繋がりました。

興味のある方は是非試してみてください!

 

careers.ecbeing.tech