「Power Automate Desktopって何ができるの?」という疑問にお答えして、PADの活用事例を7つ紹介します。好きなところから、お読みください。
Excelの一括コピーと名前変更
複数のExcelを一括コピーして、名前を変更する自動化です。
基幹システムからダウンロードしてきたExcelファイルが、「ダウンロードフォルダー」に保存されています。「共有フォルダー」にコピーし、ファイル名に日付を加えます(図1)。
図1:Excel一括コピーと名前変更
業務の課題
この作業は、単純かつ簡単。そして、「よくある作業」です。
- 該当のフォルダーを開く
- 日付を考える
- ファイル名を変更する
このように、簡単ではありますが、毎日行うのはストレスです。しかも操作対象のファイルが増えると、どんどん作業時間は伸びてしまいます。
あまりにも単純な作業であるため、誰も改善しようとせず何年も手動で実施し続けられます。
Power Automate Desktopによる解決
この業務をPower Automate Desktopで自動化すると、コピー元のファイルがそろった時点でコンソールの実行ボタンをクリックするだけで完了、です。「今日は何月何日だっけ?」とカレンダーを確認する必要もありません。エクスプローラーを起動して、フォルダーを探す手間も省けます。作業時間の短縮とミスの低減が実現できます。
動画で確認してください↓
ファイルをコピーして名前を変える(Youtube)
応用例
応用としては、
- 基幹システムからExcelファイルをダウンロードするところも自動化する
- 共有フォルダーに日付毎のフォルダーを作って、そのフォルダーにファイルをコピーする
- Zip形式に圧縮して、名前を付けて保存する
- コピーし終わったら、担当者にメールする
など。すべて、Power Automate Desktopで自動化することができますよ。詳しくはPower Automate for desktop業務自動化最強レシピ の中で作成方法を解説してます。
また、有償版PAを使えばスケジュール実行できるので、この作業を定時になったら自動で処理するということもできます。「この時間なら確実にコピー元のファイルが存在する」という時間に設定しておけば、人がこの作業に関わることはなくなります。
CSVファイルを選択してExcelで起動
複数のCSVファイルから1つを選択して、Excelで起動する操作を自動化します。
以下のような業務イメージです。
メンテンナンスの依頼を受けるたびに、該当するCSVファイルを開いてメンテンナンスする業務です。メンテンナンスする対象のCSVファイルは依頼内容によって異なります(図2)。
図2:ファイルをメンテナンスする業務
CSVファイルはExcelで開きます。メンテナンスする際は以下のような注意点があります。失敗した場合は図3に示すような結果になります。
- 「E+12」のような省略形で保存されてしまう(図3❶)
- 余計な文字(改行コードや機種依存文字など)を入力してしまう(図3❷)
- 全角と半角が混ざってしまう(図3❸)
- 0詰めが必要であるのに、消えてしまう(図3❹)
図3:メンテナンスを失敗した場合のCSVファイルイメージ
業務上の課題
CSVファイルのメンテナンスを適切に行わないと、このファイルを使用している他のシステムにエラーが発生するリスクがあります。このため、メンテナンス作業は現在、特定の担当者1人が引き受ける状況です。このような状況はすべての負荷が1人に集中し、さらにその担当者にしか対応できない、という属人化の問題を引き起こしています。
加えて、この業務には他の課題もあります。
担当者が不定期にメンテナンスの依頼を受けるため、都度、手掛けている作業を中断し、頭を切り替えないといけないということです。さらに、対象となるファイルの保存場所を探す手間や、作業ミスを避けるための細心の注意も必要です。これらは、大きな時間のロスを引き起こし、メンテナンス担当者にとってのストレスの原因にもなっています。
Power Automate Desktopによる解決
Power Automate Desktopで自動化したときの操作を解説します。
フローを実行すると、「メンテナンスする対象のファイルを選択してください」という選択ダイアログが表示されます。これからメンテナンスするCSVファイルの名前を選択して、[OK]をクリックします(図4)。
図4:ファイルを選択するダイアログ
ファイル選択後、該当するCSVファイルが起動します(図5)。
図5:起動直後の分類A_商品マスタ.csv
その後、ファイル操作が行われ、作業しやすい状態にしたCSVファイルは図6のようになり、フローが終了します。
- 数値の桁数が多くて「2.1E+12」といった形式で表示されている列を「数値型」に変更(図6❶)
- 頭の「00」が消えている列に「00」を付ける(図6❷)
- 列の幅を自動調整する(図6❸)
- カーソルの位置を一番下の行に移動する(図6❹)
図6:起動直後の分類A_商品マスタ.csv
このような細かい自動化を行うことで、担当者の業務を早く正確に、そして楽にこなせるようになります。また、誰でもボタンを押すだけで同じ作業ができるので、属人化を防ぐことができます。
全体の概要をお見せすると図7のようなフローになります。
図7:CSVファイルを起動して表示を操作するフロー
この動作について動画で確認したい方はご覧ください。
CSVファイルを選択して起動する(Youbute)
基幹システムへのログイン操作
会社の基幹システムにログインする
という業務を自動化した事例です。「基幹システムログイン」というフローを作って、実行するだけですが、毎日何度も行う作業なので自動化する意味は大きいです。
業務の課題
複数の子会社を持つホールディングスの場合、子会社ごとにユーザーIDを持ち、アカウントを切り替えながら作業しなければならないことがあります。
したがって、Webブラウザーにアカウントを記憶させておいてワンクリックでログインする、という手段が使えません。IDやパスワードを記憶しておくのも大変ですし、入力ミスも増えるので時間と労力がロスしています。
Power Automate Desktopによる解決
「ID一覧.csv(図9)」を作っておき、Power Automate Desktopで読み込みます。ユーザーが会社名を選択すると、選択された会社名に紐づくユーザーIDとパスワードで基幹システムにログインします(図8)。
図8:アカウントを切り替えて基幹システムにログインするフロー図
「ID一覧.csv」は図9のように[会社名][ユーザーID][パスワード]を持っています。Excelドキュメント形式の方が美しい見栄えにできるのですが、Power Automate DesktopからExcelを起動するのに時間がかかってしまうので、CSV形式にしています。1日に何度も使うフローなので、その度に「重いな~」と感じるとストレスになってしまいます。
図9:ID一覧.csvの内容
「ID一覧.csv」を読み込んだあとは、会社名(ID一覧.csvのA列)をリスト化してダイアログに表示しています(図10❶)。本来のダイアログの使い方としては図10❷のようにドロップダウンリストにするべきですが、一覧で見えないうえ、ドロップダウンリストをクリックする手間が面倒なので、図10❶のチェックリスト方式にしています。複数選択が可能ですが、チェックが付けられたうちの1番上の項目が選ばれる仕組みです。
図10:アカウント選択ダイアログ
[基幹システムログイン]部分は1つのフローとして独立させます。Power Automate Desktopには[Desktopフローを実行]アクションがあり、フローの中から別のフローを呼び出して利用することができます。
[Desktopフローを実行]アクションでフロー[基幹システムログイン]を設定します。図10での選択をもとにユーザーIDとパスワードを取得し、フロー[基幹システムログイン]に入力変数として渡します(図11)。フロー[基幹システムログイン]は受け取った入力変数を基幹システムのログイン画面に入力してログイン操作を行います。
図11:外部フロー[基幹システムログイン]を実行
[基幹システムログイン]のように、汎用性の高いフローは部品化しておき、外部から呼び出して利用することで今後の開発効率が上がるし、メンテナンス性も高まるので、テクニックとして参考にしてください。
ExcelデータVlookup加工
基幹システムからダウンロードした売上データと、ローカルPC内のExcelファイルと突合して別のExcelファイルを作成する。
という作業を自動化した事例です。どの会社でも「よくあるパターン」の作業なので、是非参考にして実践してください。
業務の課題
この業務の概要を図で書くと、図12のようになります。[売上明細.xlsx]が基幹システムからダウンロードしてきた売上データです。[担当一覧.xlsx]は、この作業担当者のローカルPCに保存されていて、随時メンテナンスされています。この2つのExcelファイルを結合して、新たに[売上明細2.xlsx]というExcelファイルを作成します。
図12:Excelデータ結合の流れ
Excelのイメージを見てみましょう。この[担当一覧.xlsx]には、顧客とその営業担当者が、一覧で管理されています。[担当一覧.xlsx]の顧客CDを[売上明細.xlsx]の顧客CDをぶつけて、図13の下の表([売上明細2.xlsx])を作成します。
図13:Excelデータ結合の結果
下記の5つのステップに分解できます。
- [売上明細.xlsx]をExcelで開く
- [担当者一覧.xlsx]もExcelで開く
- [売上明細.xlsx]にある[顧客CD]と、[担当一覧.xlsx]の[顧客CD]で関連づけて、[売上明細.xlsx]に[担当一覧.xlsx]の情報(顧客名・担当者CD・担当者名)を付け加える
- Excelの計算式のままだと、保存後のファイルで正しく表示されなくなるので、「計算式」を「値」に変換する
- [売上明細.xlsx]に名前を付けて、[売上明細2.xlsx]として保存する
慣れたら5分程度で終わる作業ですが、課題があります。
- 毎日のことなので、積みあがる工数は膨大
- 担当者が休んだら、他の人ができない
- たまにミスすることがある
この記事で紹介しているExcelファイルや作業フローは、わかりやすく単純化したものなので、実際のExcelファイルとは違います。もう少し複雑な作業だと思ってください。
Power Automate Desktopによる解決
Power Automate Desktopで自動化したフローの概要は図14です。「Excelで突合」の部分をフロー化しました。フローを実行すると、数秒で終了します。既定のフォルダー内に[売上明細2.xlsx]が生成されています。
図14:Excelデータ結合フローの概要
実際のフローも簡単に解説します(図15)。担当者の情報は[担当一覧.xlsx]から取得して、[売上明細1.xlsx]に書き込み、Vlookup関数でデータ結合しています。[売上明細1.xlsx]に書き込んだ担当者情報は結合後は必要ないので削除しています。最後に[売上明細2.xlsx]という名前で保存しています。
図15:Excelデータ結合フロー
このように、Power Automate Desktopで作成された[売上明細2.xlsx]を使って、顧客分析をしたり、担当者別売上分析を行います。無償で使えるPowerBIを使うことで簡単にグラフィカルな分析ができますよ(図16)。
図16:作成したExcelデータの利用
応用例
作成した[売上明細2.xlsx]を担当者別に分割して、各担当者にメール送信するという応用例が考えられます(図17)。
Excel結合フローとは別のフローとして作成することで、「ただExcel結合したいだけ」の時とこの応用フローを実行したいときを柔軟に選択できます。「実行すべきときに実行すべきフローを実行できる」というのが、Power Automate Desktopをアテンド型(人との協力型)で使うメリットです。
図17:Excelデータを分割してメール送信するフロー図
図18は[売上明細2.xlsx]を分割して、担当者別の売上明細ファイルを作成する部分のフローです。処理内容は図内のコメントをご参照ください。
図18:Excelデータ分割フロー
顧客データのWebシステム登録業務
Excelファイルで一覧化している大量の顧客データをWebシステムに登録する。
という業務を自動化した事例を紹介します。
業務の課題
この業務の概要を図で書くと、図19のようになります。
図19:顧客データのWebシステム登録業務
業務内容は、とてもシンプルです。
- [顧客一覧.xlsx]にある顧客データをWebシステムに1件登録する
- 登録後に取得できる登録番号を[顧客一覧.xlsx]に書き戻す
- 1と2を顧客データの件数分繰り返す
このWebシステムは、CSV一括登録できない仕様です。業務自体はシンプルですが、顧客データは千件以上あり、この作業のために派遣社員を1人雇おうとしていました。この顧客登録を行わないとWebシステムの利用が開始できないので困っていたところ、Power Automate Desktopのことを知ったという経緯があります。
Power Automate Desktopによる解決
フロー自体は数時間で完成しました。使い方もシンプルです。顧客一覧のExcelファイルを用意して、Power Automate Desktopの実行ボタンを押すだけで、あとはひたすら登録作業が完了するのを待つだけです。
自動化後は、この企業の役員の人から大変喜ばれました。派遣社員1人分の人件費がセーブできたから、だけではありません。顧客データをWebシステムに登録することで、あとの戦略が実行できるようになったからです。
「派遣社員を面接して、契約して、登録方法を教えて、やってもらう」となると、登録が何週間後になるかわかりません。下手すると何カ月後になっていたかもしれません。これを数日後には実行できるようになっていたわけですから、喜ぶのも当然だと思います。
応用例
登録後、[顧客一覧.xlsx]に登録日を書き込むことで、『本日登録した顧客』を判別できるようになります。
『本日登録した顧客のリスト』を使って、
- 新規顧客に「登録完了のお知らせ」を送る
- 新規顧客向けのキャンペーンなどの販促ができる
などのアクションが自動化できます。
Power Automate for desktop業務自動化最強レシピ でよく似たフローの作成方法を解説しています。
スクレイピングデータのメール送信業
Webシステムでデータを検索し、画面に一覧表示させる。一覧表示されたデータをコピーしてExcelに貼り付けて保存。そのExcelファイルをメールで担当者に送る。
という業務を自動化した事例です。
業務の課題
データ件数によっては、十数ページに分割されてしまうので、Excelへのコピー&ペーストも十数回繰り返していました。
「Webシステムを改修してもらえばいいんじゃないの?」
と思うかもしれませんが、このWebシステムはかなり古いので、ダウンロード機能を付けてもらうだけで「50万円以上の費用がかかる」と業者に言われたため、断念した過去があります。
Power Automate Desktopによる解決
Power Automate Desktopのフローの概要は、図20のようになります。
図20:スクレイピングデータのメール送信業
フローの作り方を動画にまとめていますので、こちらをご覧ください!
スクレイピングデータのメール送信フローの作り方(Youbute)
フローの内容を簡単にまとめます。
- Webシステムからデータ(複数ページある)をスクレイピングする
- スクレイピングしたデータは、CSVファイルとして保存する
- このデータを必要としている担当者にメール送信する
スクレイピングとは情報を収集して加工する技術のことです。
Power Automate Desktopには[Webページからデータ抽出する]アクションがあり、複数ページにまたがるデータも一括して取得することができるので、このアクションを使っています。
メール送信するには、Outlookを利用しています。Outlookを普段使っている人であれば、[Outlookからのメールメッセージの送信]アクションを使うと、メール送信サーバーの設定も行う必要がありません。
応用例
応用としては、
- スクレイピングして保存したCSVを加工して、Excelの帳票を作成する
- スクレイピングして保存したCSVを他のシステムにアップロードする(システム連携の自動化)
といったものが考えられます。
特に、2番目の『システム連携の自動化』は、古いシステムを使っている企業では、必要になることが多いのではないでしょうか。APIが用意されていないケースも多く見かけます。
PDFの請求書の金額取得業務
メールで送られてくるPDFの請求書の内容をExcelに転記する業務。転記する値は「請求書番号」「請求元企業名」「請求金額」の3点。
という業務を自動化した事例です。
請求書のイメージはこのような感じです。
図21:複数社の請求書のイメージ
2社とも同じフォーマットです。最近は請求業務にクラウドサービスを使う企業が増えてきており、同じフォーマットで送られてくるパターンが多くなっています。
業務の課題
この企業では、請求書管理のために手作業で一覧表を作成する業務を行っていました。請求書の件数が多くなると手作業の工数も比例して増加するという課題があります。
取引先企業と同じ請求書システムを使っているわけではないので、結局、「請求書システムからPDF出力された請求書をメールで送信してもらう」という従来型の業務を続けることになっているのが現状です。
Power Automate Desktopによる解決
同じフォーマットで請求書を送ってくる企業については、値を取得する処理は共通化できます。そこで、Power Automate Desktopで自動化しました。図で書くと下図のようになります。
図22:PDFの請求書の金額取得業務の自動化
Power Automate DesktopにはPDFからテキストを抽出するためのアクションが複数存在します。表形式のままデータを取得するときは[PDFからテーブルを抽出する]アクションが使えます。
この事例の請求書は、表形式ではうまく取り込めなかったので、[PDFからテキスト抽出]アクションを使いました。テキスト抽出するとこのようにPDFの中身がテキストとして取得できます。
図23:PDFの中身をテキストとして取得
このテキストから、
- 請求書番号
- 請求元企業名
- 請求金額
を取り出します。テキストから特定の文字列を取り出すために[テキストの解析]アクションを使いました。テキストの中から目的の文字列を取り出すには、「正規表現」を使います。もちろん、正規表現を暗記しているわけではなく、ネット検索しながらトライ&エラーで作成しています。
目的の値が取得出来たら、Excelの一覧表に転記してします。Excelの一覧表を保存して終了です。動画で実際の動作やフローの中身について解説しているので、お時間のある方はご覧ください。
上記の動画が好評なため、具体的なフロー作成方法の動画をアップしました。細かいアクションの設定方法まで知りたいという方はこちらをご覧ください。
PDFの請求書を読み取ってExcelに書き出す方法(Youbute)
テーブル形式でデータを読み取る方法
もう1つ、違うアクションを使ってPDFデータを取得する方法も載せます。下図のようなExcelをベースにして作った請求書の例です。表の中から商品番号、単価、数量も一覧表として取得したい、という場合、[PDFからテキスト抽出]アクションではなく、[PDFからテーブルを抽出する]アクションを使った方がいいです。
図24:PDFの請求書のイメージ
このフローは「株式会社〇〇商事」のPDF請求書専用となっていて、実行するとPDF請求書ファイルを選択ダイアログで選択します。選択されたPDF請求書ファイルに対して、データ読み取りを行って、抽出したデータはExcelワークブックに転記します。
図25:請求データを転記したExcel
あらかじめExcel側に用意しておいた、ピボットテーブルを更新してフローは終了します。
図26:Excelでピボットテーブルを更新
2パターンのPDF請求書読取フローを紹介しました。請求書のフォーマットによって柔軟に対応できることがご理解いただけたのではないでしょうか。
まとめ
というわけで、ここまで、7つのPower Automate Desktopの活用事例をご紹介しました。
「いろんな事例があるなぁ。逆に何を自動化すればいいか混乱した」という読者さんもいるかもしれませんね。でも、実は業務のパターンというのは、そんなに多くあるわけではありません。
私は25年以上にわたって、多くの企業で業務改善に関わってきましたが、どこでも同じような業務ばかり。細かい箇所が違うだけです。だから、この7つの活用事例で、十分に業務自動化のヒントになると思います。
まだ、触ったことのない方は、とりあえずPower Automate Desktopをインストールして体験してみるのもいい方法です。
さらにPower Automate Desktopの使い方を体系的に身に付けたいなら、本で勉強するのが効率的だと思います。ネットで情報を集めても勉強できますが、本のようにまとまってはいないので、どの順番で、どのように身に付けるべきかはわかりません。
本を読んで全体を理解したうえで、ネットで情報を集めると、上達が早いですよ。この記事の事例は私の本(Power Automate for desktop業務自動化最強レシピ – RPAツールによる自動化&効率化ノウハウ)にも書いています(完全にそのままではありませんが、応用すればほとんど解決できます)。 「他の本も検討したい」という場合は、私のおすすめのPAD本を参考にしてください!