Power Automateについて詳しく解説します
- Power Automate Desktopを使ってExcel同士で転記したい
- Excel VBAはわからないので、もっと簡単に転記を自動化したい
この記事は、上記のような疑問にお答えします。
仕事でExcelからExcelへ転記するケースって結構あると思います。
たとえば、Excelで作った請求書や申請書のデータを別のExcelファイルに取りまとめるケースなどです。
面倒ですが、VBAはわからないけど何とかしたいというのが本音ではないでしょうか。
そこでオススメしたいのが、Power Automate Desktopです。
Microsoftが作ったRPAツールでマウスを動かすだけで、手軽に様々な業務を自動化できるようになります。
Excel以外にも、メール送信やWebスクレイピングも可能です。
本記事では、Power Automate Desktopを使ってExcel同士でデータを転記する方法について解説します。
Power Automate Desktop未経験の方でもわかるよう、画像を使って順を追って解説していきますので、ぜひ一度読んでみてください。
なお、Power Automate Desktopをまだインストールしていないという方は、下記の記事を参考に、皆さんのWindowsPCにインストールしてみてください。
目次
著:やまもとてつや
Tipstour初の電子書籍化! 37歳で初の正社員となりITヘルプデスクとして勤務中の著者が、Power Automate Desktopを使った8つのメール作業・自動化事例とその方法を本書でご紹介しています。 これを読めば、ヘルプデスクの担当者はもちろん、WindowsPCで作業するすべてのワーカーの面倒なメール作業を自動化可能です。 Kindle Unlimitedで読み放題対象! |
ExcelからExcelに転記するなら3ステップでできる
ExcelからExcelに転記するには、大きく分けて3つのステップがあります。
- 転記元のExcelデータを取り込む
- 転記先のExcelファイルを開く
- 取り込んだデータを転記する
上記3ステップを詳しく解説します。
【ステップ①】転記元のExcelデータを取り込む
まずは転記元のExcelデータを取り込みましょう。
今回はサンプルとして2つのファイルを作りました。
下記が転記するExcelファイルです。
次のExcelファイルに転記していきます。
まずは転記元のExcelデータを取り込みましょう。
Excelデータの取り込み方法は、下記の記事で詳しく解説していますので、合わせてご覧ください。
データを取り込み、右側のフロー変数が下記状態になっていれば成功です。
フロー変数内のExcelDataをダブルクリックすると、下記画像のように値が入っています。
【ステップ②】転記先のExcelファイルを開く
転記先のExcelファイルを開きましょう。
Excelを開くをドラッグアンドドロップし、1つ目のExcelを閉じるよりも後にドラッグアンドドロップします。
生成された変数がExcelInstance2になっているので注意してください。
【ステップ③】データを転記する
いよいよデータを転記します。
Excelワークシートに書き込むをドラッグアンドドロップしてください。
下記画像が表示されます。
ひとまずは下記のように入力してください。
- Excel インスタンス:%ExcelInstance2%
- 書き込む値:%ExcelData%
- 書き込みモード:指定したセル上
- 列:2
- 行:3
入力できたら保存して実行してみましょう。
すると、転記先データが下記画像のようになります
ExcelからExcelへ転記できました!
【応用】条件別にデータを転記する
実は今まで解説した内容は、単純にコピペしたのと同じです。
どうせなら、条件別にデータを転記してみましょう。
一例として、科目が国語だけのデータを転記してみます。
【手順①】IFで転記する条件をつける
ある条件下のデータを転記するには、IFを使います。
アクション欄にある条件をクリックし、IFを2つ目のExcelを起動するよりも後にドラッグアンドドロップしましょう。
下記画面が表示されます。
ひとまずは下記のように書いてください。
- 最初のオペランド:%ExcelData[LoopIndex]['科目']%
- 演算子:と等しい(=)
- 2番目のオペランド:国語
これで科目が国語のデータを転記されますが、このままだと1つのデータしか転記しません。
【手順②】Loopで処理を繰り返す
処理を繰り返すには、Loopを設定します。
アクション欄にあるループの中から、LoopをIFよりも上にドラッグアンドドロップしてください。
下記画像が表示されます。
下記のように入力します。
- 開始値:0
- 終了:%ExcelData.RowsCount - 1%
- 増分値:1
開始値が0なのは、Power Automate Desktopではデータを抽出した際に最初の値が0だからです。
%ExcelData.RowsCount - 1%は、見出し1行分を削除したデータ全体の行数です。
増分値を1にして入力する行をズラします。
LoopIndexという変数が設定されました。
これでExcelデータ内の科目だけのデータを繰り返し入力します。
そして、LoopとEndの間にIFが来るようにIFをドラッグアンドドロップして修正してください。
【手順③】転記を始める行を変数に入れる
ただ、このままだと常に3行目に転記され続けるので1つずつ行をズラして入力しなければいけません。
そこで新しい変数を設定します。
左側の変数欄から変数の設定をドラッグアンドドロップしてください。
下記画面が表示されます。
変数にはNewVarが設定されているので、値に3を入れましょう。
これが転記先データの3行目になります。
【手順④】設定した条件で転記を繰り返す
いよいよデータを転記します。
Excelアクションから、Excelワークシートに書き込むをIfとEndの間にドラッグアンドドロップしてください。
下記のように入力します。
- Excel インスタンス:%ExcelInstance2%
- 書き込む値:%ExcelData[Loopindex]['番号']%
- 書き込みモード:指定したセル上
- 列:2
- 行:%NewVar%
同様に科目分と点数分を入力します。
書き込む値欄の番号を科目と点数に置き換え、列番号を変えればOKです。
すべて入力すると下記画像の状態になります。
最後に入力する行をズラしたいので、NewVarの値を1増やします。
変数アクションから変数を大きくするをIfのendの前にドラッグアンドドロップします。
下記画面が表示されます。
変数名は%NewVar%で、大きくする数値には1を入力してください。
最後にすべてを実行しましょう。
下記のようになればOKです。
科目が国語だけのデータが取り出せました!
応用次第で、全ての科目のデータを取り出せるのでぜひやってみてください。
まとめ:Excel同士の転記は覚えればカンタンにできる
以上、Excel同士で転記する方法を解説しました。
はじめはアクションの指定方法や独特の書き方に悩むかもしれませんが、いちど覚えてしまえばVBAよりもカンタンに自動化できます。
今回の記事の内容をもとに自分なりに応用してみてください。
今回の記事が参考になれば幸いです。