こんにちは。

キャスレーコンサルティングのK.H と申します。

今日は、Power Automate Desktopで、どんな事ができるかを紹介します。

Power Automate Desktopとは、マイクロソフトが提供しているRPAアプリケーションです。先日、そのアプリが無償提供される事が話題になりました。参考URL:https://flow.microsoft.com/ja-jp/blog/automate-tasks-with-power-automate-desktop-for-windows-10-no-additional-cost/

前職では、【CSV取得→エクセルへの転記→営業にメールで配信】という作業を、毎日行っていました。当時は、手間がかかるため、自動化できないものかと考えていました。しかし、実現方法がわからず、諦めていました。その時の無念を晴らすため、【CSV取得→エクセルへの転記】部分を自動化していきます。

実践内容

レコーダーを使用し、クリック操作で自動化

レコーダーとは

Excelを開き入力する、メールの送信相手を選択し、送信ボタンをクリックするなど、一連の実動作を行う事で、簡単に記録させる事できます。

一連の流れ

  • 新規フローの作成
  • CSV の取得
    • レコードの開始
      • WEBレコーダーの起動
      • 記録を開始
      • 動作確認
    • 動作をまとめる
      • サブフローの作成
      • 動作の切り取り
      • 動作の貼り付け
      • サブフロー実行設定
      • サブフロー実行確認
  • エクセルへの転記
    • レコードの開始
      • デスクトップレコーダーの起動
      • 記録を開始
    • 動作のまとめ
  • 一連動作の確認

アクションを使用し、機能を組み合わせ自動化

アクションとは

各動作を指定する単位・処理です。アクションを組み合わせ、

【アクション例】

  • Excelを開く
  • 入力セルを指定
  • 入力値を指定
  • 入力開始など

一連の流れ

  • アクションの設定
    • 入力ダイアログを表示
    • 変数の設定
    • webからダウンロード
    • csv 読み取り
    • Excel の起動
    • 一連動作の確認

前提

Power Automate Desktopはインストール済みと仮定し、進めていきます。

インストール先URL:https://flow.microsoft.com/ja-jp/desktop/

【余談】

 会社PCにインストールし、○○.onmicrosoft.comでログインしましたが「現在の環境には Microsoft Dataverse データベースはありません」というメッセージが表示されました。そのため、会社メールアドレスでアカウントを作成し、ログインし直したところ、アプリを実行する事ができました。

【レコーダー編】

まずは、レコーダーを使用します。

レコーダーは、実作業の過程を記録する機能です。(Excel マクロの記録と同じ)

新規フローの作成

【新しいフロー】を選択 → 【フロー名】を入力 → 【作成】をクリック

CSV の取得

レコードの開始

統計局から人口統計のCSVをダウンロードします。

下記ページを開いてから、レコーダーを起動させてください。

統計局URL:https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00200521&tstat=000001011777&cycle=0&tclass1=000001094741&stat_infid=000031523105&tclass2val=0

WEBレコーダーの起動

【WEBレコーダー】をクリック

使用ブラウザ、タブ選択から対象の画面を選択しましょう

記録を開始

WEBレコーダーの【記録の開始】をクリックし、記録を開始しましょう。

ダウンロードボタンの上にカーソルあてると、赤枠で囲まれます。

(赤枠が表示されなければ、先ほどの【タブ選択】を確認し、開くタブを選択しましょう。)

それを確認してから、CSVダウンロードをクリックしましょう。

ダウンロードされる事を確認できれば、OKです。

同時に、WEBレコーダー画面に動作が記録されます。

もし、間違って他の箇所をクリックしても、WEBレコーダーのゴミ箱アイコンをクリックすれば取り消せます。

その後、【終了】をクリックする事で動作の記録は完了です。

*【終了】ボタンが見えない時がありますが、WEBレコーダー画面のサイズを縮小しましょう。

動作確認

【終了】をクリック後は、以下の画面が出てきます。

【▷】をクリックすると、先ほど記録した、ブラウザの起動・CSVダウンロードのクリック・CSVダウンロードが実行されます。

動作をまとめる

【▷】はMAIN タブに設定されている動作を実行します。

しかし、この後の【エクセルに転記】を設定すると、どこまでがCSV取り込みの動作かわかりにくくなってしまいます。

そのため、動作をサブフローにまとめましょう。

サブフローの作成

サブフローとは、一連動作をひとまとめ・一単位にする事で、取扱易くする事です。(プログラミングのサブルーチン・関数と同義)今後、各サブフローをMAINタブで呼び出し、実行させます。

【サブフロー】タブから【+】をクリック、名前を設定し、【保存】をクリックし、サブフローを作成しましょう。

サブフロー名:getCSV (好みで付けてください。)

動作の切り取り

MAINタブの各動作が灰色の状態で、切り取りをしましょう。

(右クリック、切り取りを選択)

動作の貼り付け

先ほど作成したサブフロータブを選択し、貼り付けましょう。

(右クリック、貼り付けを選択)

サブフロー実行設定

【フローコントロール】から【サブフローの実行】を選択してください。

先ほど作成したサブフロー名を選択し、【保存】をクリックし、実行させるサブフローを設定します。

MAINタブに【サブフローの実行】が表示されていれば完了です。

サブフロー実行確認

【▷】をクリックし、実行してみましょう。

先ほどと同様にブラウザが起動し、CSVがダウンロードされれば、完成です。

確認が取れれば、次のために、このサブフローは無効にしておきましょう。

(右クリック、【無効にする】を選択)

エクセルへの転記

レコードの開始

デスクトップレコーダーの起動

【デスクトップレコーダー】をクリックし、デスクトップレコーダーを起動させます。

記録を開始

エクセルを開き、転記します。転記の方法は以下でなくても大丈夫です。

試す場合は、①を動作確認後、②を実行と進めていくのがよいです。

*ここで完璧に動作しなくても、大丈夫です。次のアクション説明で動作する物を別途作成します。

デスクトップ上でも、動作を記録できるんだなーぐらいの感覚で大丈夫です。

  • Excel の起動:Window の検索窓からexcelを入力後、選択
  • CSVの転記:ExcelのA1セルをクリック → Alt + A + T1 をキーボード入力(Excel上での【データ】タブ→【テキストまたはCSVから】を選択するためのショートカットキーです。エクセルのバージョンによっては、ショートカットキー割付けが異なり、そのまま使用出来ない場合があります。)→ 各ボタンをクリック

WEBレコーダーと同様に、【記録の開始】をクリックし、記録を開始します。

動作をまとめる

CSV取得時に、サブフローにまとめたように、こちらもわけましょう。copyCsvToExcel と名付けました。

(本当は、Excelを開く動作も openExcel などと、分けるべきですが、省きました。)

一連動作の確認

【MAIN】タブに、【サブフローの実行】を追加し、一連動作の確認をしましょう。

  1. ブラウザが開く
  2. CSVのダウンロード
  3. Excelが開く
  4. CSVがExcelに転記される

以上、動作すれば完成です。

しかし、デスクトップレコーダーで記録した動作が、上手くいかない時があるかと思います。

例)Excelのウインドウズサイズが小さい時は、タブの構成が異なり、各ボタンを検出してくれない。

実際、CSV取り込みの際、クリックして進めていましたが、上手く検出されないので、ショートカットキーを使用しました(笑)

上手くいく時、いかない時があると困ります(笑)

そんな不確実性を取り除くため、次は、レコーダーを使用しない、アクションを試してみましょう。

【アクション編】

レコーダーは自動的に、動作(フロー)を記録してくれました。

フローはアクションの塊・連続です。

フロー = アクション + アクション + アクション ….

レコーダーはアクションを自動的に設定してくれます。しかし、その設定は不正確なため、思いもよらない動作を引き起こします。

今度は、明示的にアクションを設定し、想定通りの動作を実現させましょう。

新規フローの作成

アクション用に、新しくフローを作成しましょう。

レコーダー作成時と同じ方法で作成します。

アクションの設定

入力ダイアログを表示

目的:保存するCSVファイル名を、入力した値に変更します。

アクション:【メッセージボックス】から【入力ダイアログを表示】を選択します。

  • 入力ダイアログのタイトル:ファイル名
  • 入力ダイアログメッセージ:ファイル名
  • 規定値:population
  • 入力の種類:1行

変数の設定

目的: CSVファイルのパスを定義します。

アクション:【変数】から【変数の設定】 を選択します。

宛先:C:\Users\xxxx\Downloads\%UserInput%.csv

C:\Users\xxxx\Downloads\:ご自身のダウンロードフォルダのパスを記載してください。

%UserInput%:入力した値をファイル名に指定

.csv:CSV形式ファイルとして保存

webからダウンロード

目的:URLからCSVを直接ダウンロードします。

アクション:【WEB】から【webからダウンロードします】を選択します。

  • URL:https://www.e-stat.go.jp/stat-search/file-download?statInfId=000031523105&fileKind=1
  • メソッド:GET
  • 応答を保存します:ディスクに保存します(ファイル用)
  • ファイル名:完全なパス(宛先フォルダー+カスタムファイル名)を指定します
  • 宛先ファイルのパス:%NewVar%{X}をクリックし、【NewVar】を選択しましょう。

動作確認

この辺りで、一度動作を確認してみましょう。

では、【▷】をクリックし、動作を確認してみましょう。

入力ダイアログの表示、ダウンロードしたCSVは入力した値で保存されていたでしょうか?

エラーが発生した場合、大きな単位で作成していると、エラー箇所の特定・修正が難しくなります。そのため。小さな単位で作成し、時々は止まって、動作確認を行いましょう。

csv 読み取り

アクション:【ファイル】から【CSVファイルを読み取ります】を選択します。

  • ファイルのパス:%NewVar%{X}をクリックし、【NewVar】を選択しましょう。
  • エンコード:システムの規定値

Excel の起動

アクション:【Excel】から【Excelの起動】を選択します。

  • Excelの起動:空のドキュメントを使用

Excelへの書き込み

アクション:【Excel】から【Excelワークシートに書き込み】を選択します。

  • Excelインスタンス:%ExcelInstance%
  • 書き込む値:%CSVTable% {X}をクリックし、【CSVTable】を選択しましょう。
  • 書き込みモード:指定したセル上
  • 列:1
  • 行:1

一連動作の確認

【▷】をクリックし、動作を確認してみましょう。

  • 入力フォームの表示
  • CSVダウンロード
  • 入力フォームで入力された値が、CSVファイル名となっている
  • Excelへの転記

以上、動作すれば完成です。

最後に

初めてRPAソフトを使用しましたが、レコーダーでの記録、アクションの設定で、簡単にCSVファイルをExcelに転記する事ができ、非常に驚きました。

この後に、filter を付け特定条件のみを表示、メールでの配信など、付け足す事も可能です。ぜひ、取り組んでみてください。

アクションとレコーダーを組み合わせる事により、office ソフトの横断~その他操作を組み合わせる事ができる事が、Power Automate Desktopの利点だと感じました。

煩雑な事務作業をRPA化し、楽に・間違いなく実施する事で、本来の業務に力を注げるのではないでしょうか。

バックオフィス業務で苦労されている方に、ぜひ知ってもらいたいアプリです。

以上、ご覧頂きありがとうございました。

K.H
システムデザイン部 K.H