Power Automate DesktopでPDFを読み込んでエクセルに転記する

みなさんこんにちは。当社ではPower Automate Desktop(以降PADと呼びます) ユーザー様に、ブログ、オンラインレッスンを通して「実務で絶対必要な」フローをご紹介しています。今回は、ほとんどの企業で実際に行っている作業をご紹介します。

PDFで表データを受け取って、エクセルに転記する

という作業です。これ本当に多いです。当社のお客様から頂くご相談のトップ3に入ります。データの提供元もおそらくエクセルで作っているので、エクセルでください、とお願いしても諸事情があってなかなかできず、毎月届く請求書などのデータをPDFからエクセルに転記している、という業務がルーチン化しているというお声をいただきます。さらにこれが月次処理で月末までに入力しなければならない、となると当然そのプレッシャーから、転記ミスが生じ、後工程に渡した後、ミスが発覚して火の手が大きくなる、という問題にもなっているようです。

そこで、今回は

「PDFデータ(但し、FAXデータを除いて)をエクセルに転記する」という、PADプログラムをご紹介いたします。

 

業務のフロー

メールなどで受け取ったPDFデータ

表データを読み込んでPADのデータテーブルに格納する

エクセルを開いて、データテーブルをエクセルシートにコピーする

エクセルの名前を付けて保存する

 

プログラムの作成

準備

デスクトップにデータを読み取りたいPDFを置いてください。

次、PADを立ち上げPDF2EXなどの名前でフローを作成し、フロー画面を立ち上げてください。

プログラムの作成

PAD画面の左側の「アクション」にあるPDFをクリックしてください。すると下に実施できるPDFの操作が表示されます。

「PDFからテーブルを抽出する」をドラッグして画面中央にドロップしてください。

PDFファイルのドキュメントのアイコンをクリックして入力したいPDFを選択してください。本レッスンでは過去レッスンで使ったエクセルをPDFにしました。保存をクリック。これを実行すると。ExtractedPDFTablesという変数が作成されます。

次にエクセルを起動します。PAD画面の左側のアクションにあるExcelをクリックしてください。すると下に実施できるエクセルの操作が表示されるので、

「エクセルの起動」をドラッグして、画面中央のプログラムの1行目のしたにドロップしてください。

 

次にデータテーブルをエクセルに書き込みます。エクセルの欄から、「Excelワークシートに書き込む」をドラッグして、中央のプログラムの2行目の下にドロップします。

ココがポイント!

この画面で書き込む値は

%ExtractedPDFTables[0].Datatables%

です。ここが違うとテーブルを正しく読み込めません。

ここで挫折する方も大変多く、今日のレッスンの山です。

書き込みモードは現在のアクティブなセル上として、保存をクリック。

 

最後に「エクセルを閉じる」をドラッグして、中央のプログラムの2行目の下にドロップします。

エクセルを閉じる前は「名前を付けてドキュメントを保存。

ドキュメントパスはデスクトップに任意の名前を付けてください。

 

これでプログラムは完成です。

 

プログラムの実行

 

プログラムを実行します。入力PDFはこちら

出力されたエクセルはこちら。

まとめ

本日は、メールなどで受信したPDFを一発でエクセルに転記するフローをご紹介しました。これを上手に活用すると、こういった業務をこなしている方のかなりの作業時間を短縮できると思います。是非ご活用ください。

 

プログラムを差し上げます。

今回のレッスンで作成したプログラムを差し上げます。テキストの内容をコピーして、PADのプログラム画面にペーストすれば簡単に流用可能です。

 

プライベートレッスン、グループレッスンのご案内

PADをもっと知りたいけれど、実際にやりたいことがわからなくてどんなレッスンを受ければいいかわからない!とお悩みの方はいらっしゃいませんか?当社では、お客様の課題を伺ったうえでプログラムを作成し、そのプログラムを使ったオンラインレッスンをご提供しています。詳しくはお問い合わせください。

 

 

免責事項

このブログで作成したプログラムは著作権フリー利用可能です。ただし、このプログラムを流用、改変して実施することによって生じた問題について責任は一切負いません。上記プログラムのコピーは免責事項について承知いただいたうえで実施するものといたします。

 

 

 

Power Automate for desktopをインストールする

みなさんこんにちは。

当社では、Microsoft社のPower Automate for desktop(以降PADと呼びます)ユーザー様向けに、レッスン、セミナー、ブログを通じて有用な情報をご提供しています。今回は基礎編として、PADのインストール方法をお伝えします。<2024年2月26日時点の情報です。>

注意事項
・Power Automate for desktopのインストールはWindows10搭載のパソコンのユーザー様のみが対象です。Windows11には標準でPADがインストールされています。
・PADのご利用には、Microsoftアカウント(個人アカウント)または組織アカウント(職場または学校アカウント)を取得する必要があります。

インストール手順

Power Automate for desktopのWebページからインストーラをダウンロードする


Microsoft Edge、Google Chromeのなどのブラウザから下記のリンク経由で、PADのインストーラをダウンロードします。
Power Automate のインストール

 

 

下記のページの一番下の行の「Power Automate インストーラーをダウンロードします。のリンクをクリックするとSetup.Microsoft.PowerAutomate

という名称のインストーラをダウンロードします。ダウンロードが完了したら、そのファイルをダブルクリックして、インストールを開始します。

 

Power Automate for desktopをインストールする

インストール画面が表示されます。[次へ]をクリックしてください。

 

 

[[インストール]を選択すると、Microsoftの使用条件に同意したことになります。]にチェックを入れ、インストール]をクリックします。

インストールが開始されると、[ユーザーアカウント制御]画面が表示されるので、[はい]をクリックしてください。少し待つと、インストールが完了します。

[インストール成功]画面が表示されます。

 

 

注意事項!!拡張機能を有効にする

PADの作業で、ブラウザを使用する場合、お使いになるブラウザの拡張機能を有効にする必要があります。この画面が表示された時点で、Google ChromeまたはMicrosoft Edgeのリンクをクリックすると、ここから機能拡張を有効にしてくれます。これを閉じてしまうと、あとから設定するのは面倒なのでここで済ませましょう。

完了したら[アプリの起動]をクリックしてください。

これでインストールは完了です!Power Automate for desktopが起動します。

 

Power Automate for desktopにサインインする

[Microsoft Power Automateにサインインする]画面が表示されますので、Microsoftアカウントを入力して[サインイン]をクリックしてください。

 

 

次にパスワードを入力して[サインイン]をクリックしてください。

次に[Power Automateへようこそ]画面が表示されるので、[次へ]をクリックしてください。

 

国/ 地域の選択]のドロップダウンリストから[日本]を選択して、[開始する]をクリックしてください。

これでインストールは完了です。お疲れさまでした。

 

 

Power Automate Desktopを使ってOUTLOOKメールを自動で送る②

みなさんこんにちは。

 

このブログではPower Automate Desktop(以降Power Automate DesktopはPADと表記します。)を使った自動化の事例で「Power Automate Desktopを使ってOUTLOOKメールを送る①」の続編をお届けします。

前回は、エクセルで複数の人あてに作成したメールのデータ込み、FOR EACH文を使ってメッセージボックスに表示するところまで行いました。今回は読み込んだデータを、Outlookメールを使って送信するという処理をご紹介します。

1.事前準備

メール送信

メール送信用のエクセルを添付の画像と同じフォーマットで作成してください。

 

 

こちらの氏名、メールアドレス、題名、本文は実際に使う情報を入力してください。そしてこのエクセルをmailsend.xlsxというファイル名でデスクトップに保存してください。

 

前回プログラムの流用

前回までのプログラムで、メールデータを読み込んで、FOREACH文を作るところまでのプログラム部分だけをコピーして、新しいフロー名を付けて保存してください。1の読み込みの部分は皆さまの環境に応じて適宜修正してください。

 

事前準備OUTLOOKを使えるようにする

PADは同じマイクロソフト社製のメールアプリOUTLOOKが簡単に使えるようになっています。このあとご紹介するように、たった3行追加するだけでメール自動送信RPAが完成します。ただし、事前にOUTLOOKが正しく立ち上がることが必須なので、あらかじめOUTLOOKにお使いのマイクロソフトアカウントでログインし、使用できる状態にセットアップしていただくようお願いします。

 

2.プログラム追加

まず、OUTLOOKアプリを起動して、処理が終了したらOUTLOOKを終了するコマンドを追加します。PADの画面の左側の「アクション」にあるOutlookをクリックすると、使用できるコマンドが、一覧表示されます。

一番上にある「Outlookを起動します」をドラッグして、中央のプログラム画面の4-5行目の間に挿入してください。

 

インスタンスの確認画面が出ますので、このまま保存するとOutlookInstanceという変数が生成されます。

 

次に、「Outlookを閉じます」をドラッグして、中央のプログラム画面のFor eachループのendのコマンドの下にドロップしてください。

 

先ほど作成したインスタンスを閉じる確認画面が出ますので、このまま保存します。

このOutlookを起動する、閉じる、の命令は繰り返しのForeachループの外に配置します

 

次にメール送信の処理を入力します。Outlookからのメールメッセージの送信をドラッグして、中央のプログラムのForeachループの中に配置します。

宛先に

変数:%CurentItem[2]%

件名:%CurentItem[3]%

本文:%CurentItem[4]%

を入力し、保存をクリックします。

 

これでプログラムは基本的に出来上がりました。本当にPADからOutlookを使うのは便利です。

 

3.データを保存

実行する前に必ず保存します。

画面中央上部のプロッピーディスクのアイコンをクリックします。

4.プログラムの実行

では、さっそく実行してみましょう。アイコンリストの再生の三角形をクリックします。

プログラムが終了したら、Outlookを起動し、メールが送信されていることを確認してください。

 

 

まとめ

 

「Power Automate Desktopを使ってOUTLOOKメールを送る」の後半をお届けしました。

 

完成したプログラムは下記のとおりです。

たった9行のPADで手作業で行っていた作業が自動化できるので大変便利です。今回は基本操作のご紹介ですが、ユーザー事にメール本文を変えたり、メール本文に送信先の宛名を入れるなどの高度な処理も簡単に行うことができます。

 

プログラムを差し上げます。

今回のレッスンで作成したプログラムを差し上げます。テキストの内容をコピーして、PADのプログラム画面にペーストすれば簡単に流用可能です。

 

プライベートレッスン、グループレッスンのご案内

PADをもっと知りたいけれど、実際にやりたいことがわからなくてどんなレッスンを受ければいいかわからない!とお悩みの方はいらっしゃいませんか?当社では、お客様の課題を伺ったうえでプログラムを作成し、そのプログラムを使ったオンラインレッスンをご提供しています。詳しくはお問い合わせください。

 

 

免責事項

このブログで作成したプログラムは著作権フリー利用可能です。ただし、このプログラムを流用、改変して実施することによって生じた問題について責任は一切負いません。上記プログラムのコピーは免責事項について承知いただいたうえで実施するものといたします。

 

Power Automate Desktop を使ってOutlookメールを自動で送る①

みなさんこんにちは。このブログでは、Power Automate Desktopを使った自動化の事例をご紹介いたします。

 

今日は、Power Automate Desktop(以降PAD)とOutlookを使って、あらかじめエクセルに用意しているメール原稿を自動で送信する。というプログラムを用意します。

たとえば、10人の従業員の方に、それぞれ異なった文面のメールを自動で送る。というプログラムを作ってみましょう。

この記事は初めてPADを使う方でもトレースできるように、ひとつひとつの作業を解説しています。

1.エクセルデータを用意する。

まず、送信したい10人の方の氏名、メールアドレス、メールタイトル、メール本文をエクセルで作成します。下記のようなシートを用意しました。このエクセルファイルをPCのデスクトップに保存します。この時、リストのシートをアクティブの状態にしてエクセルを保存してください。エクセルのファイル名はmailsend.xlsxとしました。

このような作業、結構多いですよね。今でも、手作業でPCにインストールされているメーラをつかって必死にエクセルの内容をコピペして送っている方がたくさんいらっしゃいます。これ時間の無駄。

リーンでいうところの従業員の創造性を使わないムダ。

 

2.PADでコードを書く

では、実際にPADを使ってコードを書いていきます。

PADを起動する

まずはPADを起動します。起動すると下のような画面になります。

左上の「+新しいフロー」をクリックすると、新しいクローが作成されます。

作成するフローの名称を入力し、作成をクリックしてください。今回はメール送信というフロー名にしてみます。

下のようなフロー画面が出てきます。

 

これがPADの開発画面です。左側にあるアクションリストなかから適切なアクションをドラッグして、真ん中のエリアにドロップします。PADはここに並べられアクションを上から下に順に実行します。

エクセルファイルを読み込む

まず最初に、先ほど作成したエクセルファイルの内容を読み込みます。PADのフロー画面の左側のアクションの欄の>Excelをクリックしてください

と、直下に出てくる詳細をクリックしてください。

これだけのエクセル操作をPADで実行することができます。また、エクセルファイルのマクロを実行することもできるので、PAD上でエクセルのほとんどの操作を実行することができます。

うまく活用すれば、エクセルのマクロを定時に実行することも可能です。こちらはまた別の記事で紹介します。リストの名から「Excelの起動」をドラッグして、中央のキャンバスにドロップします。

すると自動的に詳細を入力する画面が開きます。

一番上のExcelの起動は「空のドキュメントを開く」となっているので、「次のドキュメントを開く」を選んでください。するとドキュメントパスの項目が出てくるので、右側のアイコンをクリックするとファイルを選択する画面が出ますのでここで選び、下の保存をクリックします。

データの入力範囲を調べる

エクセルのシートにデータが入力されている範囲を確認し、その範囲のデータをPADに読み込みます。作成したデータは列はE列まで、5列。行はヘッダを含めて11行です。この情報をPADで読み取ります。この時は、左のアクションの「Excelワークシートから最初の空の列や行を取得」をドラッグして中央のキャンバスにドロップします。

自動的に詳細を入力する画面が開きます。

 

ここでExcelインスタンスの入力が必要ですが、先に作成したインスタンスが自動的に入ります。また、変数が二つ生成されます。FirstFreeColummは最初の空の行、FirstFreeColummは最初の空の列です。この後の処理で、この二つの変数を使って処理していきます。

実際にPADでこの二つの変数を取得できるかやってみましょう。

その前に、左の画面のアクションから

をドラッグして中央のキャンバスにドロップしてください。自動的に開く詳細画面はなにもせず「保存」をクリック。

 

データを保存

実行する前に必ず保存します。

画面中央上部の

アイコンリストからフロッピー(古)のアイコンをクリックすると保存されます。

 

プログラムの実行

では、さっそく実行してみましょう。アイコンリストの再生の三角形をクリックします。

画面を見てみましょう。

実行すると、一行ずつプログラムが実行されます。問題なく終了すると画面右側に実行結果が表示されます。確認してみましょう。

 

FirstFreeColumm(最初の空の列)は6,FirstFreeColumm(最初の空の行)は12

なので、データの最後の列は5,行は11ということになります。

ただしく、エクセルの情報を読み込んでいることがわかります。

 

データを読み込む

では、作成したエクセルのデータを読み込んでみましょう。

アクションのExcelワークシートから読み取る。をドラッグして中央のキャンバスにドロップします。この時、Excelを閉じるの行の前にドロップしてください。詳細画面が出ます。

 

 

取得の項目を「セル範囲の値」に

先頭列を1

先頭行を2(1行目はヘッダなので無視)

最終列を%FirstFreeColumn-1%

最終行を%FirstFreeRow-1%

 

最後の二つは、最初に読み込まれている値に―1を追加してください。

保存して、再度実行します。

終了しましたら、画面右のフロー変数を見ましょう

ExcelDataのインスタンスに5列、10行のデータが生成されています。ExcelDataをクリックすると収納されたデータを見ることができます。

「閉じる」をクリックすると閉じることができます。

 

ExcelDataに格納したデータを取り出してみる。

インデックスを使う

今回のレッスンでは5列10行のデータを生成しています。このデータを使って、この後はメールを送信するのですが、そのためにはExcelDataのすべての列行からデータを取り出してやる必要があります。

PADのアクションからメッセージボックス-メッセージを表示をドラッグして、中央のキャンバスにドロップしてください。

表示するメッセージの項目で{X}をクリックして、変数ExcelDataを選びます。そうすると

%ExcelData%という表示が出ます。これは%の間が変数であるということを意味します。取り出したいデータは二次元配列に収納されているのでExcelDataと右端の%に配列を表すインデックスを入れます。例えば0列0行は[0][0]とします。保存をクリックすると、以下のようになります。

ではこの状態で一度保存して、プログラムを実行してみましょう。以下のようなメッセージボックスが表示されれば成功です。

インデックスは、%ExcelData[行][列]%ですので、覚えてください。0行目の項目を順番に表示するのは、

%ExcelData[0][0]%

%ExcelData[0][1]%

%ExcelData[0][2]%

%ExcelData[0][3]%

%ExcelData[0][4]%

とします。PADはこのようになります。

For each,Loop文で処理を繰り返す

5列くらいのデータを処理するのであれば、上のようなプログラムでもいいですが、もっと多くの列を処理しないといけないとしたら大変です。こんな時はLOOP、FOR EACHを使ってみましょうインデックスを使って同じ処理を繰り返してくれるとても便利な変数です。

 

まずは、For eachを使って、各行のデータを取り出してみましょう。ここでもメッセージボックスを使います。アクションのループからFor eachをドラッグしてキャンバスにドロップすると次のように表示が現れます。

ここで、反復処理を行う値はExcelDataを選びます。保存先は自動でCurrentitemが生成されます。保存をクリックします。

次に各列の内容を表示してみましょう。アクションからメッセージボックス-メッセージを表示をドラッグして、中央のキャンバスにドロップしてください。

表示するメッセージを%CurrentItem%として、保存してください。

 

プログラムを保存して実行してみましょう。

1行目は

10行目は

と表示されれば正解です。では次のステップへ。

これでは、一つの処理で1行のデータが全部まとまった形で出てきてしまうので、これでは、すべての情報をひとつずつ取り出すことができないので、For each の中に、繰り返し処理を入れます。これをネストといいます。今回はLoopを入れてみます。まずLoopを作ってみましょう。アクションのループからLoopをドラッグしてキャンバスにドロップすると次のように表示が現れます。

開始値は0とします。終了はFirstFreeColumn-2とします。FirstFreeColumnは最初の空の行なので、最後の行は―1するのですが、さらにインデックスが0から始まるので―2とします。ここは注意してください。増分は1とします。保存をクリックします。次にアクションからメッセージボックス-メッセージを表示をドラッグして、中央のキャンバスにドロップしてください。

表示するメッセージを%CurrentItem[LoopIndex]%としてください。

そうすると以下のようなLoopが出来上がります。

 

そして次はこれを、先ほどのFor Loopの中に入れます。やりかたはLoopの行をSHIFTキーを押しながらENDをクリックすると、3行の色が暗くなります。そしてこれをドラッグして、For Loopの中にドロップすると、以下のようになります。

プログラムを保存し、実行します。

すると、1行の中で、各列のデータがすべて順番に保存できるかと思います。

 

これで、エクセルに保存した自動送信用のデータをすべて取り出せるようになりました。

まずは前編①はここまでです。次回後編では、いよいよOutlookを使いメールを送信します。

次回をお楽しみに。

 

今回作ったプログラム

 

最後までお読み下さり、ありがとうございます。

 

続編はこちらです。お待たせいたしました。↓

POWER AUTOMATE DESKTOP を使ってOUTLOOKメールを自動で送る②

 

3.コード差し上げます。

実際に作ってみたがうまくいかないという方がいらっしゃいましたら。今回のレッスンのコードを無料で差し上げます。下のボタンからお問合せ下さい。オフラインでのレッスンも承りますのでお気軽に。

 

プライベートレッスン、グループレッスンのご案内

PADをもっと知りたいけれど、実際にやりたいことがわからなくてどんなレッスンを受ければいいかわからない!とお悩みの方はいらっしゃいませんか?当社では、お客様の課題を伺ったうえでプログラムを作成し、そのプログラムを使ったオンラインレッスンをご提供しています。詳しくはお問い合わせください。

 

 

免責事項

このブログで作成したプログラムは著作権フリー利用可能です。ただし、このプログラムを流用、改変して実施することによって生じた問題について責任は一切負いません。上記プログラムのコピーは免責事項について承知いただいたうえで実施するものといたします。