![見出し画像](https://assets.st-note.com/production/uploads/images/85522543/rectangle_large_type_2_b880e2a5becc0c9021e9d1dda3eb6601.png?width=1200)
PowerAutomateDesktopによる業務効率化のすすめ
はじめに
「3時間かかる作業を自動化したいよ。ドラ◯もん」
「簡単に言ってくれるな~」
22世紀はまだですがカンタンにできちゃうんですよ。
(パソコンの中のみですけど)
ということで、PowerAutomateDesktopを使用して社内の業務効率改善に取り組んでみましょう。
PowerAutomateDesktop(以下PAD)はPCで行っている様々な動作をプログラムを書かずに自動化してくれる機能を持っています。
まずはココからダウンロードしてみましょう。
マイクロソフトから提供されているツールで、無料で利用できます。
![](https://assets.st-note.com/img/1661501501892-88r7Mv5vvr.png?width=1200)
どの業務を効率化できるのか
さて、業務効率の改善と言っても実際に効率化できる業務があるのでしょうか。
複雑過ぎて自動化ができない処理だったり、人の目が必須な業務だったり…
まずは社員に話を聞いて自動化できる業務があるか確認してみましょう。
早速忙しそうな社員を見つけました。
「何か業務の手作業で困ってることは無いですか?」
「そんなことより!このExcelのデータ200件を
A社の問い合わせフォームに入力する作業があるんだ!あと2時間以内に!」
「なるほど!ありがとうございます!」
社員の方が早速自動化できそうな仕事を提供してくれたので、
この件を題材に自動化してみましょう。(ポジティブ
※ 弊社の社員は皆優しく、話しかけても邪険にする方はいません
何を自動化するのか整理しておくと良いでしょう。
・ Excelからデータを一括で取得する
・ 特定WebサイトのフォームにExcelのデータ1行目を入力する
・ 登録ボタンを押下したらフォームの入力に戻り、次行のデータで入力する
・ 繰り返し登録できる
実際はもっと条件があると思いますが、初回としては丁度いいですね。
Excelのデータも提供してもらい、どのような構成になっているか確認しておきましょう。今回は例題としてこのようなExcelファイルを作成して「問い合わせリスト.xlsx」として保存しました。
![](https://assets.st-note.com/img/1661919331517-VFK5I3dqFk.png?width=1200)
では、PADで実際に自動化を試してみましょう。
Excelの操作をやってみる
Excelの起動
まず「新しいフロー」を作ってみましょう。
どうやらアクションなるものを選択できる。まずはExcelの起動をしてみますか。
![](https://assets.st-note.com/img/1661740044787-3X7gPcPXEe.png?width=1200)
ふむふむ、起動するExcelを選択できるようです。
[Excelの起動]から[次のドキュメントを開く]を選択すると
[ドキュメント パス]を指定できるようになります。
ドキュメントパスには作成した「問い合わせリスト.xlsx」を指定しています。
![](https://assets.st-note.com/img/1661510395254-RKciEuyNt1.png?width=1200)
パスは社内の共有サーバーなども指定できました。
保存するとフローの1番が表示されます。
「フロー変数」にインスタンス「ExcelInstance」が登録されていることが確認できるでしょうか。
恐らく開いたExcelの操作をするためのオブジェクト的なものでしょう。
エンジニアの勘がそう言っています。
![](https://assets.st-note.com/img/1661510543343-s23gbBQPii.png?width=1200)
Excelからセルのデータをまとめて取得
次はExcelワークシートからデータを読み取ってみましょうか。
デフォルトでExcelのインスタンスに「ExcelInstance」が指定されています。
「%変数名%」という形で変数指定するっぽい。
これだけお膳立てされてれば勝ち確ですわ。
データ取得の開始列と行を指定して…
終了の列と行を…………………………………………最終行?
業務で使用するExcelデータの最終行って都度変わりますよね…
![](https://assets.st-note.com/img/1661510970818-AlzOqs81kn.png?width=1200)
拝啓
グーグル先生お元気でしょうか。
私は今困っています。助けてください。
敬具
![](https://assets.st-note.com/img/1661511889721-qtz4phrOMG.png?width=1200)
最初の空白行を取得できるアクションが用意されています。
(ちゃんとアクション一覧確認してないだけ
FirstFreeRowという変数に格納されるようです。
そんなこんなあり、最初に現れる空白行=行末の一つ先として定義します。
空白が途中である場合などの考慮をしていないのでデータの構造によっては
データが全て取得できない可能性もあります。今回は空白が無い前提です。
![](https://assets.st-note.com/img/1661512041119-bA9OviCvFM.png?width=1200)
ちなみに「ExcelData」という変数にデータが入っています。
Excelを閉じる
最後にExcelを閉じておきましょう。
閉じないと、起動する度に同じExcelが開いてしまってうざったい。
今回は読み込みだけですが、書き込みを行う場合に重複してExcelを開くと書き込みできないので注意が必要です。
![](https://assets.st-note.com/img/1661513068147-R6NxPmsv2T.png?width=1200)
ブラウザーの操作をやってみる
ブラウザーの起動
Excelの操作はなんとなくできたけど、ブラウザーの自動化って難しくない?
スクレイピングも最近は少ないコードで書けるけど、そもそもPADでできるのかね。
と思ってたら当たり前のようにあるじゃないですか「ブラウザー自動化」。
Webフォーム入力の項目もあるので使用してみましょう。
![](https://assets.st-note.com/img/1661771199580-MTdfEwjO07.png?width=1200)
PAD上でChromeの起動を試してみましょう。
パラメータの選択で起動モードや初期URLの指定があります。
「Browser」という変数が生成されます。
![](https://assets.st-note.com/img/1661756272783-gS7v4VXL6W.png?width=1200)
今回は自社の問い合わせフォームを利用します。
※ スクレイピングで他社のサイトに迷惑をかけないように意識しましょう。
Excelのデータをフォームに入力するには
Excelから取得したデータは、PAD上では以下の画像の参考画像のように表示できます。
フローの実行後に右のカラムにある[フロー変数]内の「ExcelData」をダブルクリックすることで確認できます。
![](https://assets.st-note.com/img/1661758314628-ARfrXispl4.png?width=1200)
この「ExcelData」は所謂「配列」という構造で変数に格納されています。
配列データを処理するために恐らく「アレ」がアクションにあるはずです。
エンジニアの皆様はニヤリとしたことでしょう。
さぁ出てきなさい!隠れても無駄です!!
![](https://assets.st-note.com/img/1661911908331-FaI3glfVex.png?width=1200)
はい。「For each」を使います。
「For each」のループ処理を使うことで、Excelから取得しているデータを1行ずつ読み込んでいくイメージとなります。
パラメーターの選択では[反復処理を行う値]に「ExcelData」を指定します。
![](https://assets.st-note.com/img/1661759418542-FcgHGqAlzd.png?width=1200)
![](https://assets.st-note.com/img/1661759554405-1hYZJjNrko.png?width=1200)
「For each」と「End」の組み合わせは必ず1対1になり、
この中で問い合わせを行えば、繰り返し実行できる処理となります。
For each内で値を参照する方法は「フォームへの書き込み」の項目で説明します。
Webページへの移動
ループ処理でまず行うのは入力ページへの遷移です。
ループ開始後に登録ページに遷移しておくことで、
2順目以後も登録ページから開始できますね。
アクションは[ブラウザー自動化]→[Webページに移動]を選択します。
![](https://assets.st-note.com/img/1661766319127-uSsPBc5e8t.png?width=1200)
ブラウザアドオンの確認
ここで使用ブラウザのPAD用アドオンが有効になっているか確認しておきましょう。
基本的にはインストール時にブラウザ用のアドオンもインストールされます。
※ このタイミングでアドオンが無い場合はPADの[ツール]→[ブラウザ拡張機能]からインストール可能です。
![](https://assets.st-note.com/img/1661926062048-HA9yvU9jZF.png)
UI要素の追加
次に問い合わせに必要な「inputタグ」や「ボタン」を追加しておきましょう。
どのinputタグに入力するのかを特定するために必要な工程です。
右上にある[UI要素のタブ]を押下して、[UI要素の追加]ボタンを押下します。
![](https://assets.st-note.com/img/1661767307186-vyAlmaKZkh.png?width=1200)
![](https://assets.st-note.com/img/1661767368121-tSSaOSZp3M.png)
この状態で入力したいページをブラウザーで開き、
テキストフォーム周りにマウスを合わせると………
お、見慣れない赤い枠が現れました。
![](https://assets.st-note.com/img/1661767665867-quH5XXF3kV.png?width=1200)
「ミニウィンドウ内」に記載があった通りCtrl+左クリックでinputタグ指定すると………
ミニウィンドウ内にフォームの情報が追加されています!!
これを繰り返して、入力する要素を登録しておくと次の工程で楽になります。
登録が一通り完了して完了ボタン押下すると、追加した要素が表示されます。
![](https://assets.st-note.com/img/1661768340653-K3bYdsXfTa.png?width=1200)
フォームへの書き込み
これでようやく入力フォームに値を設定できそうです。
[UI要素]は先程指定した要素を選択できるので、
入力したいinputフォームを指定します。
[テキスト]はループ内で使用できるCurrentItemを指定します。
![](https://assets.st-note.com/img/1661769333071-IhPTVIQje9.png?width=1200)
そういえば、Excelから取得したデータをFor eachで読み込んでから
値の参照方法の説明を飛ばしていましたね。
![](https://assets.st-note.com/img/1661758314628-ARfrXispl4.png?width=1200)
CurrentItemの中には1行目から順にColumn1~Column6が入っています。
Column2の氏名を指定したいのでCurrentItem[1]と指定します。
配列に馴染みの無い方々は
「は?2番目だから2を指定するんやろ。算数できんの?」
と思ったことでしょう。
PADでは配列を扱う時、開始は1ではなく0からになります。
この辺りの振る舞いはプログラム言語と同じようです。
オデ サンスウ デキル。
同じ要領でテキストボックスやプルダウン、チェックボックスも設定してみましょう。
以下のようにループ内にフォームへの入力ができればOKです。
![](https://assets.st-note.com/img/1661770050840-W8MOnc9uN1.png?width=1200)
ブラウザーを閉じる
最後にブラウザーを閉じればフローは完成となります。
![](https://assets.st-note.com/img/1661913214924-12TluKHAVZ.png?width=1200)
動作確認
アクションの無効化
動作確認や検証中は、Submitボタン押下をすると都合が悪い場合があります。
安定動作が確認できるまでは登録ボタンの押下を実行しないように、アクションを無効化することが可能です。
無効化したいアクションを選択し、右クリック→[アクションを無効化]を選択しましょう。
![](https://assets.st-note.com/img/1661913659966-kdoTxNytEF.png?width=1200)
フロー実行
フロー実行を確認してみましょう。
PADの上辺にある実行ボタンを押下することで作成したフローが実行されます。
動き出すと、まずExcelが起動して、すぐ閉じて…
ブラウザー開いて…データの入力が…………ちょ、早い早い!
でもちゃんと入力していますね。
実行は途中で停止することができますので、入力内容を確認したい場合は一時停止してみましょう。
エラーが発生してもエラー内容が分かりやすい形で表示されるので直せるはずです。
![](https://assets.st-note.com/img/1661913868989-b2zciLu80C.png?width=1200)
ブラウザー自動化の注意点
さて、動作確認ができたところで、注意点を説明しておきましょう。
ブラウザーの自動化には基本的なルールが存在します。
それは「アクセス先のサイトに迷惑をかけない」というものです。
具体的にはアクセス間隔(ページ遷移間隔)を1秒以上開けることを意識しましょう。
「動産不法侵入」という犯罪になるケースもあるようです。
もうひとつ。
サイトの更新などで目的のタグが取得できずにエラーになる可能性があります。
エラーについて運営元の企業に文句を言うのはお門違いなので
絶対にやめましょう。
サイトのデータを取得する処理を書いた場合は著作権についても考慮が必要です。
詳しくは「著作権」や「動産不法侵入」などの注意点がまとめられている記事やサイトを一読していただき、可能なら社内の法務やシステム管理者に確認してください。
自己責任というやつです。
まとめ
「ってことでA社の問い合わせを自動化しましたよ!」
「それはもう終わってる!
明日までにこの400件のデータをB社の問い合わせフォームに(ry」
「……がんばってください!」
ということで、PADを使用した業務効率化について記載させていただきました。
Excelやブラウザへの入力だけですが、慣れてきたら分岐やエラー処理を試して
リッチなフローを作成すれば、社員からも喜ばれることでしょう。
(時には逃亡せざるを得ない状況もありますが‥)
記事内容は説明不足や冗長な箇所もありますが、
PADは他にも分かりやすい記事が多くあるので
ちょっとでも参考になればありがたいです。
これにて締めとさせていただきます。
PADで良き自動化を。