株式会社グローバルゲート公式ブログ

Microsoft PowerAutomate Desktopで日常のルーチンワークを自動化する

こんにちは。株式会社グローバルゲート制作部のモーリーです。 
すでにご存知の方も多いと思いますが、本年は特例措置に伴い海の日・スポーツの日・山の日が例年と異なります。 

海の日      7月22日(木) 
スポーツの日   7月23日(金) 
山の日      8月8日(日) 
山の日の振替休日 8月9日(月) 

当社も上記の通りに休業日となります。ご迷惑をおかけしますがよろしくお願いいたします。 

さて、今回はMicrosoft PowerAutomate Desktopというツールを使った日々のルーチンワークを自動化してちょっとでも楽に仕事をする方法をご紹介します。 

PC操作の自動化は「Robotic Process Automation」(RPA)と呼ばれ、近年注目を集めている分野です。 
何十~何百回とコピペを繰り返したり単純な計算をしたり文字を入力したり…といったルーチンワークを半自動で行い、場合によってはAIによる分析も加えて業務の効率化を目指します。 

こちらも最近よく聞く言葉であるDigital Transformation(DX)には欠かせない技術の一つです。 

DXといえばD-Generation Xだったのに… 

Microsoft PowerAutomate Desktopとは何か 

Microsoft PowerAutomate Desktopはマウスやキーボードで行っているWindowsの操作を自動化するツールです。 

Windows 10 ユーザーは追加費用なしでご利用いただけます 

それって…お金いらないってコト!?アワワワ…

有償版のPower Automateに比べると一部使えない機能もありますが、それでも十分すぎるほど強力です。 

2021年4月にリリースされたばかりのツールのため、私自身もまだ全機能を把握しているとは言い難いのですが、うまく活用して勤務時間をTransformationしていきたいと思います。 

今回はサンプルとして 

・出退勤時間を1クリックで記録する 
・Webサイトからデータを抽出して保存 
・Webページのフォームに自動で入力して送信 


の3つのフロー(PowerAutomate Desktopでは一連の自動化された工程を「フロー」と呼びます)を作成してみました。 

はじめに:Microsoft PowerAutomate Desktopのインストール 

はじめにPowerAutomate Desktopのインストールを行っておきます。 
といってもインストーラーをダウンロードしてダブルクリックするだけです。 

利用にはMicrosoftアカウントが必要です。インストール後にログインを求められますのでお持ちでない方は取得しておいてください。

PowerAutomate Desktopの基本的な使い方

インストールができたら早速使ってみましょう。
まずPowerAutomate Desktopを起動すると作成済みフローの一覧が表示されます(初回起動時は何も表示されません)。 
フローを作成するためには左上の「フローを作成する」をクリックします。 

フロー作成画面が表示されます。 
左側のアクションをダブルクリックするかドラッグ&ドロップで中央のエリアに配置し、各アクションに制御処理を書いてフローを作成します。

「フロー」の名前の通り、難しいプログラムを書かずにフローチャートを作っていく感覚で操作を行うことができるようになっています。

それでは、実際にフローを作っていきましょう!

1クリックで出勤時間・昼食開始時間・昼食終了時間・退勤時間をエクセルに記録する 

時間を記録しているファイルを開いて時間を入力して保存して閉じる…という簡単な作業ですが、積み重なるとそれなりのめんどくささがあります。これを自動化してみましょう。

事前準備.月日だけ入力したエクセルファイルを用意しておきます 

まず記録用のエクセルを用意します。
年月をシート名とし、中身に日付だけを書いておきます。

1.事前に用意したエクセルを開く 

エクセルを開く」というそのものズバリのアクションがありますので、これを使います。
今回は事前に用意したエクセルファイルを使いますので、そのファイルをドキュメントパスに指定します。

2.現在の日時を取得 +変数定義

現在の年月日+時間を取得します。
ここで取得した年月日時分は以下の目的で使用します。

・年月…シートの特定に使用する
・月日…入力するセルの特定に使用する
・時分…実際に入力する値

テキストをパディング」アクションを使用することで1~9月を01~09月という表記に修正することができます。

3.エクセル内の当月のシートをアクティブにする 

年月で得られた値をもとに、その名前のシートをアクティブにします。
つまり2021年6月にこのフローを実行した場合、「202106」というシートがアクティブになります。

4.シート内から本日にあたるセルを取得し、時間を入力

次に、

1.今日にあたる行を取得
2.出勤時間が入力されていなければ2列目に現在の時刻を入力
3.昼食開始時間が入力されていなければ3列目に現在の時刻を入力
4.昼食終了時間が入力されていなければ4列目に現在の時刻を入力
5.退勤時間が入力されていなければ5列目に現在の時刻を入力
6.退勤時間が入力されていれば何もしない


という処理を行います。
ちょっとややこしいですが、このような処理にすることで同一のフローで出勤から退勤まで記録することができます。

この部分は出勤時間セルに入力があるかどうかを判定し、なければ列を右に移動して同じ処理を繰り返す、という処理を行うことで実現可能です。

PowerAutomate Desktopはwhileやforeachのようなループ構文、ifやelseのような条件分岐も使うことができますので、複雑な処理を実行させることもできます。

5.エクセルを保存する 

これで一つのフロー実行時に出勤時間から退勤時間までの入力がされるようになりました。
あとはエクセルを保存すれば完了です。

業務開始前にPowerAutomate Desktopを起動し、節目の時間に実行ボタンをクリックするだけで業務時間が保存されます。

1クリックでYahoo!リアルタイム検索のトレンドをCSVに保存する 

データを入力するフローの次は、データを取得するフローを作ってみましょう。

 Yahoo!にはリアルタイム検索というページがあり、ツイートを検索する機能のほかにトレンド(話題になっている単語をランキングで掲載している)を見ることができます。

このトレンドを収集し続ければ、流行を狙って新サービスをリリースするなどマーケティングに活かせるかもしれません。その収集作業を1クリックでやってみます。

1.ブラウザを起動してYahoo!のトレンドページを開く

Webページからデータを取得するためにはブラウザを開く必要があります。
こちらも「新しいChromeを開く」というアクションがありますので、初期URLにリアルタイム検索のURLを指定してアクションを設定します。

ChromeのほかFirefoxやEdge、Internet Explorer(いらないのに…)を開くアクションもあります。

2.開いたページからランキング部分を抽出する

「Webページからデータを抽出する」アクションを選択し、アクション詳細を開いた状態でブラウザを開くと「ライブWebヘルパー」という子ウインドウが表示されます。

ライブWebヘルパーはブラウザ上をクリックして要素を選択することができる機能ですが、あまり使い勝手がよくないので「詳細設定」をクリックして直接セレクタを書いたほうが確実です。

3.取得した項目をカンマ区切りで並べる

これでランキング部分のテキストデータが得られましたが、中身は配列になっています。

今回はこのデータをCSVで保存したいので、一旦カンマ区切りの文字列に変換します。

配列を一行単位のテキストに変換し、さらに改行をカンマに置き換えることでCSV用の文字列としています。

4.指定したファイルに追記で保存

こうしてできあった文字列を保存しますが、単に保存するだけでは記録になりませんのでオプションで「内容を追加する」を選択して追記されるようにします。

あとは毎日フローの実行することを忘れなければ、トレンドデータベースのできあがりです。
(現実的には実行自体も自動化して毎日指定時間に実行されるようにすると思いますが)

1クリックでCSVのユーザーリストを1件ずつWebページの登録フォームに送信

最後に、Webフォームへのデータ送信を自動で行うフローを作成してみます。

昨今は顧客データベースやグループウェアなどの社員専用システムもWebサイトのかたちで提供される場合が多くなっています。 
顧客情報の登録を一括で行う仕組みがない場合、登録専用フォームに1件ずつ項目を入力して送信するという地味な作業を繰り返す必要があります。その作業を自動化します。

次のようなフォームを使ってユーザー名とメールアドレスと備考を数百人分入力しないといけないとしたら…地獄ですよね。

1.CSVファイルを開く

ユーザー一覧はCSVで提供されるものとします。
CSVがなかったら…CSVを作成するフローを作りましょう。

「CSVを読み取ります」アクションを使用し、CSVを開きます。
開いたCSVは「CSVTable」という変数に配列で保存されます。

2.CSVから得られた項目をforEachでループする 

得られた変数(CSVTable)は配列のため、forEachが使えます。
今回は

1.ブラウザでフォームを開く
2.名前、メールアドレス、備考をフォームに入力する
3.フォームの送信ボタンを押す
4.ブラウザを閉じる


という処理をCSVの行数分行います。

勝手に文字が入力されて処理が進んでいく様は実に気持ちがいい。

まとめ

PowerAutomate Desktopは今回使った機能以外にも、メールの送受信やアプリケーションの操作、外部APIの使用など多種多様なアクションが用意されています。
うまく活用できれば、皆様のDigitalをTranformする強力な味方となることは間違いありません。
当社の業務でも活用方法を考え、皆様にフィードバックできればと思います。ご期待ください。

【関連記事】

ご相談・お問い合わせ

当社サービスについてのお問い合わせは下記までご連絡下さい。

お電話でのお問い合わせ

06-6121-7581 / 03-6415-8161