2023.10.06
本シリーズでは、Power Automate Desktop※を活用して業務効率化に役立てる方法をご紹介しています。
前回、PADでデータを読み込む方法を解説しました。
今回は、続編として、PADに読み込んだデータをExcelに転記していく方法をご紹介します。前回同様、同じような情報を複数箇所に転記する作業をしている方にお勧めの内容となっています。
面倒な作業に頭を悩ませている方はこの機会に業務自動化にチャレンジしてみてはいかがでしょうか?
※ Power Automate Desktop (PAD)とは?
MicrosoftがWindows10ユーザー向けに無償で提供しているPC自動化ツールです。Windows11には最初からインストールされています。
プログラミングなしでPCの操作を自動化できます。
本コラムでは当ツールの活用方法をご紹介しています。
インストール方法はこちら
1.データを書き込む
2.まとめ
データの読み込みの方でも触れましたが、PADでデータを取り扱う場合、
そのほとんどがDatatable型の変数になります。
Datatableって何?という方はページ下部のバックナンバーから第6回、第7回を読んでみてください。
では、読み込んだデータをExcelに書き込む方法を解説していきます。
まずは、Excelに書き込む方法を解説していきます。
今回は、新入社員のデータを社員管理用エクセルに「入社日順」に転記するフローを作ります。
具体的には、以下のリストを、
以下のエクセルに転記していきます。
早速ですが、フローを組んでいきます。
配置するアクションが多いので、5つのブロックに区切って解説していきます。
そして、転記用Excelデータを読み込む「For Each」が始まります。
読み込まれた1行のExcelデータは「ExcelRow」という変数に入っています。
このループ処理の中で、新入社員データとExcelデータの各行の入社日を比較していきます。
処理の流れは以下のようになります。
ループ処理を終えても「PasteIndex」が0のままだった場合は、
Excelの最終行に新入社員データを追記します。
青枠の下の「If」はその判定をしています。
ここまでで、新入社員データをExcelに書き込む用意が出来ました。
順番に詳しく見ていきます。
A)「Excelワークシートに行を挿入」
新しく新入社員のデータを入力するための空行を挿入します。
パラメータは以下のように設定します。
Excelの列・行インデックスは1から始まります。
配列のインデックス(0から始まる)と混同しやすいので注意しましょう。
これで転記用のExcelに空行が追加されました。
B)「Excelワークシートに書き込む」
ⅰで追加した空行に新入社員データを書き込みます。
パラメータは以下のように設定します。
書き込む値には「CurrentItem」を設定します。
今回は、新入社員データの行を丸ごと書き込んでいますが、必要な項目だけ書き込む場合は「CurrentItem[“列名”]」という形で設定します。
書き込む値に行(Datarow)を指定した場合は、指定列から右に向かって項目ごとに列を分けて書き込んでくれます。
項目ごとに貼り付ける場合は指定した列のセルに値を書き込みます。
2行目の3列目に行(CurrentItem)を書き込んだ場合の例
2行目の3列目に1つの項目(CurrentItem[“氏名”])を書き込んだ例
ここまで、行を挿入するアクションと書き込むアクションについて解説しました。
これらのアクションを配置するとこのようになります。
赤く囲った部分が新入社員データを書き込んでいる部分で、
青く囲った部分が転記先のExcelデータを読み込み直している部分です。
この読み込み直すというのがわかりにくい部分なので、図で説明します。
図の左が行追加前、右が行追加後です。
右の転記先Excelには行が追加されているのに対し、PAD内の変数は中身が変わっていません。
これは、変数「ExcelData」は行追加前の転記先Excelを読み込んだデータであって、転記先Excelに行を追加したからと言って変数「ExcelData」の値は変わらないことを示しています。
このまま処理を続けてしまうと、転記先Excelと変数「ExcelData」の総行数に差が出てきて、想定した動きが出来なくなってしまいます。
なので、行を追加する度に変数「ExcelData」の値を行追加後に更新しているのです。
以上でエクセルにデータを書き込むことが出来ました。
今回は、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回 活用事例 条件分岐を使いこなせ!エラーを減らすフロー設計