この記事は、当サイトのPower Automate for desktop(以下:PAD)の記事をまとめている記事です。私自身のブログネタ帳も兼ねています。
PADはMicrosoftが提供する無料のRPAソフトだよ!
Power Automate for desktopの基本を学ぶ
PowerAutomate for desktopの使い方
▲無料版でできないことの解説・PADの歴史・Power PlatformにおけるPower Automate for Desktopの役割などの概念的部分の解説です。
▲PADのインストール方法・画面の見方・基本的使い方の基本です。プログラミング学習で定番の「Hello World」をPADで表示させるフローを作成しながら学習します。
PowerAutomate for desktopの変数
▲Power Automate for Desktopの変数とは?Power automate for desktopを扱う上で欠かすことができない要素である変数についての解説です。
PowerAutomate for desktopでよくあるエラー
▲Power Automate for Desktopのエラーをまとめている記事です。困ったらこの記事を見れば解決するようにしたい。
現在準備中の記事(基本編)
- Power Automate for desktopとPower Automateって違うの?(クラウドフローとデスクトップフローの違い)
- Power Automate for desktopで困ったときに助けを求める方法。
- ループ処理
- ifを使った条件分岐処理
- デバッグについて知っておいてほしいこと
- 質問の仕方のコツ・質問する場所
ファイル・フォルダー操作(印刷)
フォルダー操作
ファイルを検索・取得する方法
印刷
▲フォルダー内のファイルを全部まとめて印刷する方法・入力ダイアログに入力したキーワードをファイル名に含むファイルだけを印刷する方法・印刷リストに列挙した品番にマッチするファイル名を持つファイルだけを印刷する方法
文字列操作・テキスト(.txt)操作
PADでテキストを扱う時の知識についてまとめています。
テキストファイル操作の基本(読み込み・書き込み)
▲文字列操作の基本。テキストファイルの読み込み・書き込み・改行をするときの基本的なアクションの使い方について解説しています。
テキストの解析をして抽出する方法
▲文字列操作レベル2。テキストファイルから正規表現を使ってパターン検索する方法です。文章の中から商品名、電話番号、郵便番号、などパターンを使って柔軟に検索する方法について解説しています。
▲こちらはより簡単にパターン検索の方法です。「エンティティからテキストを認識する」アクションを使えば、事前に定義されたパターンを使うことができます。正規表現の専門的な知識を必要とせずにパターン検索することができます。事前定義済みのパターンには【電話番号・URL・金額・ハッシュタグ・電話番号・メールアドレス・・・】などがあります。
テキスト(文字列)から特定の文字列を削除する方法
▲「テキストのトリミング」アクションを使ってテキストの文頭と文末にあるスペースやタブ・改行を削除する方法です。リストを作り替える方法も解説しています。
▲「テキストを置換する」アクションを使って郵便番号や電話番号のハイフンを削除する方法です。
▲「テキストを置換する」アクションを使って文中のタブを削除する方法です。「テキストのトリミング」では文頭文末のタブしか削除できません。「テキストを置換する」アクションならそれができます。
▲「テキストを置換する」アクションを使って文中のスペースを削除する方法です。「テキストのトリミング」では文頭文末のタブしか削除できません。「テキストを置換する」アクションならそれができます。
▲上記以外の使用頻度の低いテキスト系アクションをまとめて解説しました。(ランダムテキストを生成・大文字小文字変換・テキストを反転)
テキストを分割する
▲「テキストの分割」アクションを使って、文字列を分割してリスト型変数格納する方法です。
▲「テキストの分割」アクションを使って、改行ごとに文字列を分割してリスト型変数格納する方法です。
▲「テキストの分割」アクションを使って、1文ごとに文字列を分割してリスト型変数格納する方法です。句点(「。」)でテキストを分割します。
▲テキストの行数をカウントして取得する方法です。
現在準備中の記事(文字列操作)
- テキストに文字列を追記する2つの方法。(行を追加アクションによる追加・変数による追加)
CSV操作
CSVの読み込み
JSON操作
Power Automate for desktopJSONはカスタムオブジェクトに変換して使うと便利です。「PADでAPIをたたく」の記事を参照してください。
ブラウザ自動操作(Webスクレイピング)
ブラウザ操作(Webスクレイピング)の操作に必要な知識をまとめています。
スクレイピングとは、人間がWebブラウザーで操作する作業をロボット(PAD)で自動化することです。
複数のWebページから大量のデータをとってきたり、画像を収集したり、することができます。PADでは主に「ブラウザー自動化」グループの中に含まれるアクションを使ってスクレイピングを目的としたフローを作ることができます。Webスクレイピングともいいます。
スクレイピング以外にインターネット上のデータを取得する方法としては、APIという仕組みを利用してデータ取得を行う方法があります。PADでもAPIのしくみを使って外部サービスとデータのやり取りをすることが可能です。API連携は、スクレイピングによるデータ取得よりも簡単で動作も安定します。APIが提供されているWebサービスのデータを取得する場合はまずAPI連携を検討した方が良いでしょう。
ただし、APIを利用するには目的のWebページでAPIが提供されている場合に限りますので、提供されていない場合はスクレイピングすることになります。
UI要素の設定方法
▲ブラウザ操作やデスクトップアプリケーションの操作に必要な「UI要素」の解説とUI要素の設定のコツなどをまとめました。
▲UI要素の2つの登録方法と違いについてまとめました。レコーダーで作成したフローをそのまま使っている人にも見て頂きたいです。
スクレイピングに必要な”最低限の”HTMLの知識(準備中)
スクレイピングする前に「ブラウザ開発者ツール」の使い方を知ろう!
▲ブラウザー自動化・スクレイピングするフローを作成するときに絶対に使用する「ブラウザー開発者ツール(DevTools)」の使い方をまとめました。ブラウザー開発者ツールを使うことでスクレイピングのターゲットとするWebページを完全攻略できます。
Webフォームの入力・Webサービスへのログイン
▲Webブラウザを自動操作して、WebシステムにユーザーIDとパスワードを入力してログインするフローを作成しながら、Webブラウザ自動操作の基本的なアクションの使い方について解説しています。
▲RPAのテストを行うサイトとして有名な「RPA Challenge」にPower Automate for desktopでチャレンジしてみた時の記録です。テスト用に用意されたWeb上ページ上のフォームに、Excelのデータを10件する登録するフローを作成しています。Webフォームの入力・Web上のボタンのクリックなどの汎用的な内容になっているのでスクレイピングの参考になるかなと思います。
Webサイトからファイルのダウンロード
IE限定の方法(こちらの方がおすすめ)
▲Webブラウザを自動操作して、Webサイトからファイルリンクをクリックしてファイルをダウンロードした後に、ダウンロードしたファイルを開くフローの作成方法について解説しています。
IE以外でファイルをダウンロード
▲Webブラウザを自動操作して、Webサイトからファイルリンクをクリックしてファイルをダウンロードした後に、ダウンロードしたファイルを開くフローの作成方法について解説しています。
Web上のデータの抽出(表・要素)
▲Webページ上の表データ(HTMLテーブル)の情報を取得するスクレイピングの一例を紹介しています。
スクレイピングしたExcelファイルにVBAマクロを実行する
▲スクレイピングしてダウンロードしたExcelファイルに、そのまま事前に用意したVBAを実行して、結果をPADで受け取ってみました。
スクレイピングでページネーション(ページャー、ページ送り、ページング)
ページネーションとは複数ページにまたがる通販サイトなどのWebサイトでよくみられる「次のページへ進む」ボタンです。ページの一番下にあることが多いです。
「1,2,4,5,・・・ , 次へ」というやつだね。うちのブログでもカテゴリページで使っているね!
うん。ページャー、ページ送り、ページングなどと呼ぶこともあります。
ページネーションを攻略することで複数ページにわたる連続したページの情報を取得することができるよ。
▲Webブラウザを自動操作して、ページネーションに対応したWebサイト(複数ページに渡るサイト)から1ページずつ情報を抽出する方法について解説しています。
スクレイピングで無限スクロール
無限スクロールとはページネーションによって次のコンテンツを表示するのではなく、同一ページ内で下にページをスクロールすることによって次のコンテンツが自動的に読み込まれていく処理のことをいいます。YouTubeのコメント欄なんかに使われていますね。
一般的に、無限スクロールを採用しているWebサイトをスクレイピングすることは難しいといわれています。わたしはPADではやったことがないですが下記の公式の記事が参考になるかと思います。試してみたら記事にしてみようと思います。
スクレイピングを使った記事
現在準備中の記事(Webスクレイピング系)
- ログインの時にGoogle連携の小さいウィンドウがでてくるサイトのスクレイピング方法
- キーの送信によってフォーム入力する方法
- Webページからスクレイピングして取得したデータを使って、別のWebサイトをスクレイピングする方法
- UI要素をセレクタビルダーを使ってゼロから記述する。
- データ抽出(表・要素)
個人的にPADはWebスクレイピングがめちゃめちゃ簡単にできるところが好きなところなので、この領域の記事は特に増やしていきたいと思っています。
スクレイピングするときの注意!
スクレイピングを禁止しているWebサイトにスクレイピングすることのないように注意してください(Amazon・メルカリなど)。スクレイピングを禁止していないサイトにおいても利用の際は節度をもって自己責任で実施するようお願いします。
メール送信・Outlook操作系
Outlookメールの本文にExcel表を貼り付ける方法
▲Excelの表データをメール本文に張り付ける方法です。もちろん図で貼り付けるのではなく、コピペ可能なHTMLテーブルでメール本文に挿入しました。
Outlookメールの本文に画像を貼り付ける方法
▲2022年2月のアップデートで新規追加された「ファイルをBase64に変換」アクションを使ってHTMLにローカルPCの画像を挿入する方法です。Teamsにもローカル画像を送信することができます。メールやTeamsの本文中に画像を埋め込みたい方の参考になるかと思います。
メールを時間・期間を指定して抽出する
▲既存の「Outlookからメールメッセージを取得します」アクションのオプションには、期間を指定したメール取得ができません。期間指定でメールを抽出するテクニックの紹介です。
現在準備中の記事(メール操作系)
- 複数の添付ファイルを付けてメールを送信する方法(複数のリスト型変数からメール添付する方法)
- メールの文章を特定の文字列パターンを抽出する(正規表現)
- メールの添付ファイルがあるときと無い時がある時の条件分岐
- メールにフォルダをZip圧縮して添付する方法
画像分析とかOCR(画像から文字列抽出)
OCRとは画像データの中から文字列を抽出してテキスト化することだよ!(光学文字なんたらの略だった気がするよ!)
OCR(文字抽出・文字起こし)
▲画像から「Tesseract OCRエンジン」を使ったOCR文字抽出の方法です。(現在はTeseractよりも、2021年12月のアップデートによって新しく追加されたWindows OCR エンジンの利用をおすすめします)
AIを使った超高度な画像分析(Microsoft コグニティブ)
Microsoft Azure(Microsoft コグニティブ)を使えばAIエンジニアでなくても、AIの機能を誰でも簡単にPADに取り込むことができます。
▲Microsoft AzureのComputer VisionというAIを使った高機能なOCRの基本をまとめました。(Microsoft Azureの登録方法とComputer Visionの基本的な使い方)
▲Microsoft AzureのComputer VisionというAIを使って画像の中から文字列を抽出する方法です。
▲Microsoft AzureのComputer VisionというAIを使って画像の説明文自動作成を行いました。例えばクルマの写真を渡すとAIが自動認識してその写真にふさわしい文章「車が山道を走っている」という文章を自動生成してくれます。
▲Microsoft AzureのComputer VisionというAIを使って、画像のブランド自動判別を行いました。例えばシャネルの口紅が映った写真を渡すと「シャネル」というタグを返してくれます。
現在準備中の記事(画像分析)
- Power Automate for Desktopで画像から顔認識して座標を取得する。
- Power Automate for DesktopでGoogle Vision APIを使う方法。
Excel操作系
Excelデータを読み込む
▲【初心者向け】Excelファイルから単一セルのデータを読み込む方法です。Excel読み込みの最も基本的な方法について解説しています。
▲複数セル・表データ、複数セルを一括で読み込む方法について解説しています。
▲複数セル・表データ、複数セルを一括で読み込む方法について解説しています。Excelを読み込んだ時に生成されるDatatable型変数(2次元配列)を後続のアクションで使用する方法についての基本部分について解説しています。
▲複数セル・表データ、複数セルを一括で読み込む方法について解説しています。Excelを読み込んだ時に生成されるDatatable型変数(2次元配列)を後続のアクションで使用する方法についてのもう少し踏み込んだ解説をしています。ループ処理で1行ずつ取り出したり、応用的に特定の行だけ検索したりする使い方の解説です。
▲【初心者向け】Excelファイルから単一セルのデータを読み込む基本最終行と最終列を取得する方法
Datatableを加工する
▲読み込んだDatatableをそのまま使うのではなく加工するデータの一部を加工して使用する方法です。(置換・型変換)
Excelに書き込む
▲【初心者向け】Excelファイルに書き込みを行う方法と2つの保存方法(名前を付けて保存・上書き保存)
▲Excelの転記方法・ループの中で1セルずつ書きこむ基本的な書きこみ方法です。
▲Excelの転記方法・Datatableを書きこむことで1アクションで複数セル同時に書き込む方法です。1セルずつ書きこむよりも高速に処理できます。(Datatableを新規作成する方法)
▲「Excelの行の挿入」アクションを使用して請求書フォーマットに記入スペースを追加しながらExcelの転記を行う方法。
Excel VBAマクロをフローの中で実行する。
▲PADでExcelマクロを実行する方法です。
▲PADでWebシステムからExcelファイルをダウンロードして、そのダウンロードしたファイルに、既存の別Excelファイルのマクロを実行しました。
現在準備中の記事(Excel操作系)
- Excelファイルをタイムスタンプ付きで別名保存する方法
- 請求書に用意された行数よりも書き込むデータ数が多い時に、行の挿入を使って書きこむスペースを作る方法。
クラウドフローでのExcel自動化はOffice Scriptがあるよ。
▲Power Automateのクラウドフローが使える環境にある場合は、Excelを自動操作する手段としてExcel Online版のマクロ言語であるOfficeスクリプトをクラウドフローと連携させて使う方法もあります。
PADとExcel VBAとの比較
Power Automate for desktopは非常に強力なツールですが、Excel操作の自動化に関してはExcel VBAと比べるとまだまだできることは少ないですし処理も遅いです。複雑なExcel操作は「Excelマクロを実行する」アクションでVBAマクロに任せると良いかもしれません。
「Power Automat for DesktopでのExcel操作」と「Excel VBAでのExcel操作」の比較
- PADはVBAよりは処理が遅い。
- PADのExcel操作はVBAよりもできることが少ない。
VBA以外の方法でExcelの複雑な操作をするときは、マウスとキーボードアクションを組み合わせると良いかもしれません。
デスクトップアプリケーション・ウィンドウ操作
デスクトップアプリケーション・ウィンドウ操作によく使うアクション
- UIオートメーショングループの中のアクション
- マウスとキーボードグループの中のアクション
- システムグループの中のアクション
- 「アプリケーションの実行」アクション
アプリケーション・ウィンドウを開く
アプリケーション・ウィンドウを閉じる
アプリケーションにログインする。
準備中
準備中
- クリックやショートカットキーを送信する。アプリに。
- アプリ開く
PDF操作系
▲PDFから全文抽出するには一番手っ取り早い方法です。特定の箇所だけ抽出する場合は↓の部分抽出する方法をご覧ください。
▲Tesseractエンジンを使ったPDFファイルのOCR。PDFを全文抽出する方法についてまとめています。(2021年12月のアップデートによりWindows OCRエンジンが追加されました。現在はそちらがおすすめです。)
▲新しく追加されたWindows OCRエンジンのレビューです。わたしはTesseract OCRエンジンよりこちらをおすすめします。
▲PDFから特定の文字(領域)を抽出する方法です。アンカー領域を目安にして特定の座標の文字列を抽出する方法です。
PDFの連結
複数のPDFファイルを1枚にまとめました。
現在準備中の記事(PDF操作系)
- PDFから郵便番号や電話番号などの特定の文字列パターンを抽出する方法(正規表現)
- PADで使用できる全OCR技術を比較してみた。
- PDFデータの中の表を抽出してみた。
Power Automate クラウドフローとの連携
▲PADとクラウドフローの連携の一例です。
▲クラウドフローの活用事例です。
Power Automate for desktopと外部アプリの連携・Web API連携
▲PADと外部サービス(Google/LINE/Chatwork/楽天など)と連携するにはWebスクレイピングやUIオートメーションよりもAPIという仕組みを利用するとスムーズなケースが多いです。こちらの記事ではPADでWeb APIを実行するときの基礎知識について解説しています。
▲APIを使ってPADからLINEにメッセージを送信する方法です。
▲APIを使ってPADからChatworkにメッセージを送信する方法です。
▲APIを使ってPADからTeamsにメッセージを送信する方法です。
現在準備中の記事(アプリ連携)
- Power Automate for DesktopでSlackにメッセージを送信する。
- PADとクラウド会計ソフトFreeeを連携してみた。
- PADとGoogleスプレッドシート連携してみた。
スクリプト実行系アクション
Python
その他
- VBScript
- PowerShaell
- Cmd
その他のアクションや使い方
フローの途中でダイアログを表示してユーザに入力を求めたい時は?
▲フローの中で「入力すべき文言が都度変わるため人間の判断が必要」というケースがあるかと思います(こういうのなんて言うんだっけ?)。そんな時は「入力ダイアログボックス」を表示させてフローの途中で人間の判断を介入させることができます。
(管理者向け)フローで実行できるアクションを制限したい時は?
▲新機能DLP(Data Loss prevention Polices)を使えばPower Automate for desktopで、フロー内で使えるアクションに制限をかけることができます。たとえばPADでのスクレイピングを禁止にするために「ブラウザー操作」グループに所属するアクションを禁止にすることもできます。(2022年01月10日時点でまだプレビュー版機能みたいです)
現在準備中の記事(その他)
- 機密変数をクラウドフロー管理画面から確認するとどうなるのか?
- PADからFAXを送信する方法。
- PADのフローを他の人に共有する方法
- PADのフローファイルのバックアップ方法
- 有料版Power Automateを使って、他のサービスをトリガーにしてデスクトップフローを実行する方法
- 有料版Power Automateを使って、デスクトップフローをスケジュール実行する方法
- Power Automate for Desktopの中のプログミング言語『Robin(ロビン言語)』について知ろう。
Power Automate for Desktopの情報を収集する方法
Webサイトから情報を収集する。
▲Power Automate / Power Automate for Desktopの情報を取得したり、質問できる場所をまとめました。学習のご参考になさってください。
書籍から情報を収集する。
▲この本の最大のメリットは、デモWebサイト、デモデスクトップアプリケーションの2つを利用してハンズオン形式で学ぶことができる点です。本とまったく同じ環境でスクレイピングなどを学べるので、本と自分の環境の違いによって起こるエラーで、無駄に躓いて挫折する可能性がとても低いです。その点で初心者の方に最もオススメできるPADの入門書です。著者は日本有数のRPAエンジニア集団として有名なロボ研さんです。
さらにパワフルに時短・自動化するには?
ワークフロー単位で自動化する!
ここまでPower Automate for desktopを使った個人のPC作業の自動化について紹介してきました。もっと大幅な時短を狙うにはワークフローの自動化に着目することをお勧めします。
ざっくりした説明になっちゃいましたので詳しくは下記で紹介する書籍などを参考にしていただきたいです。要は「個人プレイの時短」だけに留まることなく「チームプレイの時短」に目を向けると、みんなで早く帰宅できるよ、ということです。
(この辺は組織の管理者的な役割の方が意識すべきことで、特に日本企業においては組織の末端のメンバー( 例えば私のような人間)が下手に提案したり手を付けると後悔することも多そうなのでご注意を・・・。)
ワークフローの自動化を行う時、既存の業務の流れをいきなり自動化しても失敗してしまうことがあります。
自動化を機に、既存の業務の流れに無駄や非効率な部分がないかを見なおしをしてみると良いかなと思います。
▲ワークフローの自動化を行う前に読んでおきたい本でした。概念の説明ばかりで抽象的な内容の本が多い中、一歩踏み込んだ実例を交えた解説が多くてイメージがしやすく飽きずに読めました。業務改善系の書籍の中でも高評価です。
▲リモートワークが進み社内のコミュニケーションの形も変わってきた今こそ見るべきじゃないかと思いました。マニュアルを作ることで遠隔の社員との間で共通認識ができて安心感が生まれます。1500以上の業務マニュアルを作成してきたプロの著書です。マニュアルの必要性の部分は、特に、組織の管理者や上層部の方に見て欲しいです。
ワークフローの自動化は「Power Automateクラウドフロー」の方が得意です。
ワークフローの自動化を行うときの具体的なアプローチ手段はPower Automateクラウドフローなどがあります。
PADは個人の仕事の自動化、Power Automateクラウドフローはワークフローの自動化が得意なんだよね。
Power Automateクラウドフローは、Microfost 365に契約していれば基本機能は無料で使えます。
Power Automateクラウドフローは、例えば、上司の承認を求めて承認の可否によって条件分岐するような複数人が絡む業務の一連の流れ(ワークフロー)を一貫して自動化できます。つまり組織的にみると、PAD単体で自動化を行うよりもパワフルな自動化が実現できる可能性が高いのです。このためPower Automateクラウドフローが利用できる環境では、PADよりも先にクラウドフローでの自動化の実装を検討してみると良いかと思います。PADのフローとクラウドフローを連携させることもできちゃいます。(一部の機能は有料契約が必要。)
▲デスクトップフローとクラウドフロー両方の解説があるので両方の概要をざっと掴みたい人向けです。初心者向けの解説書なので非常にわかりやすい反面どちらもすでに使っている人には物足りないかもしれません。がっつりやるなら次に紹介する本がおすすめです。
▲Power Automate クラウドフローの入門書としてわたしが最も推したい本です。そもそもクラウドフローの日本語の解説書は数少なく貴重ですし著者は多数の技術書を執筆されていて私も何度もお世話になっている安心の掌田津耶乃さん。よく使うであろうアクションは網羅的に解説されているのでこれ1冊読めば大体のフローは作れるのではないかなと思います。
▲当サイトではPower Automateクラウドフローの記事も随時更新中なのでよろしければチェックしてね。
まとめ
以上、Power Automate for desktopの活用方法についてまとめました。
この記事は随時追記や更新を行っています。またチェックしてみてください。
Power Automate学習教材
▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。
▲Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。
▲Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。
Microsoft 365/ Power Automate / Power Platform / Google Apps Script…
▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。