コラム - お役立ち情報

2023.10.06

【無料RPA】Power Automate Desktop(PAD)活用事例 【続】面倒な複数箇所への転記作業はまとめて自動化!

本シリーズでは、Power Automate Desktop※を活用して業務効率化に役立てる方法をご紹介しています。
前回、PADでデータを読み込む方法を解説しました。
今回は、続編として、PADに読み込んだデータをExcelに転記していく方法をご紹介します。前回同様、同じような情報を複数箇所に転記する作業をしている方にお勧めの内容となっています。
面倒な作業に頭を悩ませている方はこの機会に業務自動化にチャレンジしてみてはいかがでしょうか?

※ Power Automate Desktop (PAD)とは?
MicrosoftがWindows10ユーザー向けに無償で提供しているPC自動化ツールです。Windows11には最初からインストールされています。
プログラミングなしでPCの操作を自動化できます。
本コラムでは当ツールの活用方法をご紹介しています。
インストール方法はこちら

目次

1.データを書き込む

2.まとめ

1.データを読み込む

データの読み込みの方でも触れましたが、PADでデータを取り扱う場合、
そのほとんどがDatatable型の変数になります。
Datatableって何?という方はページ下部のバックナンバーから第6回第7回を読んでみてください。

では、読み込んだデータをExcelに書き込む方法を解説していきます。

(1)Excelに書き込む

まずは、Excelに書き込む方法を解説していきます。
今回は、新入社員のデータを社員管理用エクセルに「入社日順」に転記するフローを作ります。
具体的には、以下のリストを、

以下のエクセルに転記していきます。

早速ですが、フローを組んでいきます。
配置するアクションが多いので、5つのブロックに区切って解説していきます。
 


①新入社員データを読み込む

まずは、新入社員データを読み込みます。
アクションは以下のように配置します。

赤く囲った部分で開くファイルを選択してデータを読み取っています。
詳細の設定については前回解説しているので割愛します。
青く囲った部分ではファイルを選択しなかった場合にフローを停止する処理を入れています。

 

②転記先のExcelデータを読み込む

次に転記先のExcelを読み込みます。
アクションは①と同じ構成で以下のように配置します。

ここでもファイルを選択しなかった場合にフローを停止する処理を入れています。
この処理を入れる目的は、フローがエラーで止まらないようにすることです。特に長いフローを作る際はこの考えが非常に重要になってきます。

 

③新入社員データ1行とExcelデータを比較し、転記する行を決める

次に新入社員データの各行をExcelの何行目に追加するか決めます。
ココが転記フローの肝になる部分です。
アクションは以下のように配置します。

赤く囲った部分が新入社員データを1行ずつ読み込んでいる部分で、
青く囲った部分が転記先のExcelデータを1行ずつ読込んでいる部分です。
上から順に解説していきます。
最初に、お馴染みになってきた「For Each」を使って新入社員データを1行ずつ読み込んでいきます。
読み込まれた新入社員データは「CurrrentItem」という変数に入っています。
次に、変数を2つ設定しています。

ExcelRowIndex:転記用Excelの行番号を保存するための変数
PasteIndex:新入社員データを追加する行番号を保存するための変数

そして、転記用Excelデータを読み込む「For Each」が始まります。
読み込まれた1行のExcelデータは「ExcelRow」という変数に入っています。
このループ処理の中で、新入社員データとExcelデータの各行の入社日を比較していきます。
処理の流れは以下のようになります。

A)「PasteIndex」が設定されていないことを確認
「PaseteIndex」が設定されている場合はⅲに進む
B)入社日を比較する
Excelデータの方が後の日付になっている場合、
「ExcelRowIndex」に1足した値を「PasteIndex」に代入
C)「ExcelRowIndex」を1大きくし、次の行を読み込む

ループ処理を終えても「PasteIndex」が0のままだった場合は、
Excelの最終行に新入社員データを追記します。
青枠の下の「If」はその判定をしています。

ここまでで、新入社員データをExcelに書き込む用意が出来ました。

 

④新入社員データをExcelデータに転記する

③で決定した行番号に空行を追加して、新入社員データを追記していきます。
書き込みに使用するアクションは2つです。

A)「Excelワークシートに行を挿入」
B)「Excelワークシートに書き込む」

順番に詳しく見ていきます。
A)「Excelワークシートに行を挿入」
新しく新入社員のデータを入力するための空行を挿入します。

パラメータは以下のように設定します。

Excelインスタンス:%ExcelInstance%
行インデックス:%PasteIndex%

Excelの列・行インデックスは1から始まります。
配列のインデックス(0から始まる)と混同しやすいので注意しましょう。
これで転記用のExcelに空行が追加されました。
B)「Excelワークシートに書き込む」
ⅰで追加した空行に新入社員データを書き込みます。

パラメータは以下のように設定します。

Excelインスタンス:%ExcelInstance%
書き込む値:%CurrentItem%
書き込みモード:指定したセル上
列:1
行:%PasteIndex%

書き込む値には「CurrentItem」を設定します。
今回は、新入社員データの行を丸ごと書き込んでいますが、必要な項目だけ書き込む場合は「CurrentItem[“列名”]」という形で設定します。
書き込む値に行(Datarow)を指定した場合は、指定列から右に向かって項目ごとに列を分けて書き込んでくれます。
項目ごとに貼り付ける場合は指定した列のセルに値を書き込みます。

2行目の3列目に行(CurrentItem)を書き込んだ場合の例

2行目の3列目に1つの項目(CurrentItem[“氏名”])を書き込んだ例

ここまで、行を挿入するアクションと書き込むアクションについて解説しました。
これらのアクションを配置するとこのようになります。

赤く囲った部分が新入社員データを書き込んでいる部分で、
青く囲った部分が転記先のExcelデータを読み込み直している部分です。
この読み込み直すというのがわかりにくい部分なので、図で説明します。

図の左が行追加前、右が行追加後です。
右の転記先Excelには行が追加されているのに対し、PAD内の変数は中身が変わっていません。
これは、変数「ExcelData」は行追加前の転記先Excelを読み込んだデータであって、転記先Excelに行を追加したからと言って変数「ExcelData」の値は変わらないことを示しています。

このまま処理を続けてしまうと、転記先Excelと変数「ExcelData」の総行数に差が出てきて、想定した動きが出来なくなってしまいます。
なので、行を追加する度に変数「ExcelData」の値を行追加後に更新しているのです。

 

⑤転記用Excelを保存して閉じる

ここまででデータの転記が終わりました。
あとは転記先のExcelを保存していきます。
アクションは以下のように配置します。

ここでは、転記先Excelに別名を付けて保存してます。
というのは、上書き保存してしまうと万が一想定外の動きをした場合に手戻り出来なくなってしまうためです。

以上でエクセルにデータを書き込むことが出来ました。


2.まとめ

今回は、PADを使ってExcelに転記するフローを作成しました。
ExcelにDatatableからデータを書き込む場合、データの型によって動きが変わるので場面に合った方法を選択しましょう。
ここでいうデータの型は、「Datatable」「Datarow」「その他」の3種類を指します。
・Datatable
書き込んだセルを基準に、データテーブルを丸ごと書き込みます。
やり方は、「Excelワークシートに書き込む」アクションで「書き込む値」にデータテーブルの変数をすればOKです。

画像は、2列3行目に書き込んだ場合の例です。
転記元と転記先の列構成が同じで、最終行に丸ごと追加したい場合などはこの方法を使います。
・Datarow
書き込んだセルを基準に、行を丸ごと書き込みます。
やり方は、「Excelワークシートに書き込む」の解説部分を見てください。

転記元と転記先の列構成が同じ場合はこの方法でデータを書き込むと簡単です。今回はこの方法を使いましたね。
・その他
対象のセルにデータを一つだけ書き込みます。
やり方は、「Excelワークシートに書き込む」の解説部分を見てください。

転記元と転記先の列構成が違う場合はこの方法を使います。

Excelへの転記にチャレンジしてみたいけど難しそうだなという方は、今回作成したサンプルフローをダウンロードしていただき、実際に動くところを見てみてください。
さらに、自分でも少しいじってみると、より理解が深まるかと思います。

サンプルフローダウンロードリンク
ダウンロードパスワード:VBIMxRJC

今回でWebブラウザへのデータ入力も解説する予定でしたが、長くなってしまったので分割して公開します。
楽しみにして下さっていた方がいたら申し訳ありません。
間隔を開けずに公開できるように取り組んでいきますのでよろしくお願いします。



あなたの疑問は解決しましたでしょうか?解決しなかった場合は直接質問も受け付けております!
執筆者にメールで質問する


 記事を書いた人
記事を書いた男性アイコン
 株式会社ワイ・ビー・シー
 営業部 開発チーム
 白川
 



PADに関連する記事はこちら
第1回 入門編 業務を自動化して作業を楽に
第2回 活用事例 メールの添付ファイルを自動保存
第3回 活用事例 Webページからデータを抽出しエクセルに転記
第4回 活用事例 無償アカウントでもフローを共有してさらに便利に!
第5回 活用事例 フローの不具合を見つけて直す
第6回 活用事例 表形式データのDatatableを活用しよう!
第7回 活用事例 「データテーブル」アクションを使いこなそう!
第8回 活用事例 面倒な複数箇所への転記作業はまとめて自動化!
第9回 活用事例 【続】面倒な複数箇所への転記作業はまとめて自動化!
第10回 活用事例 【続々】面倒な複数箇所への転記作業はまとめて自動化!
第11回 活用事例 PADで四則演算!
第12回 活用事例 条件分岐を使いこなせ!エラーを減らすフロー設計


関連記事

エラーを減らすフロー設計

PADで四則演算

【続々】複数個所への転記はまとめて自動化