タイトルのテキスト
タイトルのテキスト
タイトルのテキスト
タイトルのテキスト

パワーオートメイトを使ってファイル間のデータのコピペをやってみた!

エクセル・スプレッドシート パワーオートメイト

t f B! P L

 パワーオートメイトでファイルのコピーをしてみた

〇やってみたこと

今回は、パワーオートメイトを使って、2つのエクセルファイル間でデータのコピペを自動化させてみました。

エクセルを使った業務では、ファイルごとに分かれているデータを一つのファイルに集約するということをよくやります。

サンプルとして下の図のとおり、2つのファイルを準備しました。 

サンプルとして下の図のとおり、2つのファイルを準備

サンプル1のファイルには、下記のような表データが入っています。

これをサンプル2ファイルにコピペさせました。 

下記のような表データが入っています

〇パワーオートメイトのフローを作る。

自動化のフローを作るので、パワーオートメイトを起動させて、画面上にある “+” をクリックします。

表示される最初の画面で、フローの名前を付けて “作成” をクリックします。

僕は、名前を “シートのコピペ” としました。 

表示される最初の画面で、フローの名前を付けて “作成” をクリック

フローを作成する画面が表示されます。

画面の左側が各アクションの一覧です。

今回は、エクセルに関したアクションしか使いませんが、さまざまなアクションがあります。

自動化させたい作業のアクションを右側の画面にドラッグ&ドロップさせて、フローを作っていきます。

エクセルファイル間のデータのコピペなので、とりあえずエクセルを起動させます。 

自動化させたい作業のアクションを右側の画面にドラッグ&ドロップ

項目をドラッグ&ドロップさせると下図のようなダイアログが開きます。

任意のファイルのパスを取得したいので、赤く囲っている箇所をクリックします。 赤く囲っている箇所をクリック

まず、サンプル1を開きたいので、選択して、開くを選択します。

サンプル1を開きたいので、選択して、開くを選択

ドキュメントパスが格納されました。

これは、手入力してもOKです。

“保存” をクリックします。 

ドキュメントパスが格納されました

これでフローの一つ目のアクションができました。

続いて、“エクセルのワークシートを読み取る” をドラッグ&ドロップします。 

“エクセルのワークシートを読み取る” をドラッグ&ドロップ

先ほど、ファイルパスを格納したサンプル1ファイルが、ExcelInstanceという変数に格納されているので、それを選択。

取得したい範囲を “ワークシートに含まれる使用可能なすべての値” としました。

別の項目を選択すれば、任意のセル範囲も指定できます。 

ワークシートに含まれる使用可能なすべての値

2つ目のアクションができました。

取得した表のデータは変数ExcelData に格納されます。

続いて、ペーストする為、サンプル2 のファイルを開いていきます。

ファイル1の時と同じく、“Excelの起動”をドラッグ&ドロップします。 

Excelの起動”をドラッグ&ドロップ

ドキュメントパスにサンプル2のパスを格納させました。 

ドキュメントパスにサンプル2のパスを格納

サンプル2が変数 ExcelInstance2 に格納されました。

次に、サンプル2ファイルに表をペーストさせます。

Excelワークシートに書き込む” をドラッグ&ドロップさせます。 

Excelワークシートに書き込む” をドラッグ&ドロップ

サンプル2に書き込みたいので、Excelインスタンスは ExcelInstance2 を選択しました。

ファイル1のデータをペーストさせたいので、書き込む値には、“ExcelData” を選択します。 

ファイル1のデータをペースト

どこに、ペーストするかを決めます。

僕は、“現在のアクティブなセル上” を選びました。

好きなところにペーストさせたいときは、上の “指定したセル上” を選びます。 

好きなところにペーストさせたいときは、上の “指定したセル上” を選びます

これで、

①ファイル1を開く

②表データを読み込む( コピー )

③ファイル2をを開く

④ファイル2に書き込む( ペースト )

のフローが完成しました。

画面上の “実行” ボタンを押して、フローを動かしてみましょう。 

画面上の “実行” ボタンを押して、フローを動かしてみましょう

サンプル2のファイルにサンプル1の表データが読み込まれました。

今回は、罫線や書式設定まで読み込ませることができませんでした。

データを変数に格納している時点で、無理じゃないかなと思っていましたが、思っていた通りでした。 

サンプル2のファイルにサンプル1の表データが読み込まれました

2つのエクセルファイルの間でデータのやりとりは出来ましたが、ここまでのフローだと、エクセルファイルが開きっぱなしで終了しています。

そこで、ファイルを閉じるアクションを追加していきます。

Excelを閉じる” をドラッグ&ドロップ します。 

“Excelを閉じる” をドラッグ&ドロップ

 Excelインスタンスで閉じたいエクセルファイルの変数を選択します。

サンプル1を閉じるので、“ExcelInstance” を選び、閉じる前に“ドキュメントを保存” させました。 

Excelインスタンスで閉じたいエクセルファイルの変数を選択

サンプル2についても、同様の処理を行います。

サンプル2は “ExcelInstance2” に格納されているので、こんどはそちらを選びました。 

サンプル2についても、同様の処理を行います

サンプル1とサンプル2を閉じるアクションが追加されました。

このフローを起動させると、サンプル1の表データがサンプル2ファイルへコピペされ、

エクセルファイルが保存されて閉じられます。 

エクセルファイルが保存されて閉じられます

〇まとめ

今回は、パワーオートメイトを使用して、2つのエクセルファイル間でデータのやりとりを行うフローを作成しました。

もし、データを読み込みたいファイルが3つ、4つと増えるなら、アクションを追加していけばOKです。

僕は、エクセル作業の自動化を普段はVBAを使用して行っています。

その中でも、複数のファイルから、一つのファイルにデータを集約させる作業(ファイル間のコピペ)はとてもよく行います。

RPAツールを使った自動化は、VBAをマスターするより簡単に行うことができると感じました。

今回の、ファイル間のデータのやりとりをVBAでコード化したら・・・

VBA

Sub サンプル1から読み込み() 

Workbooks.Open "C:\Users\〇〇〇〇\Desktop\サンプル\サンプル1.xlsx"

Cells.Copy

Workbooks("サンプル2.xlsx").Activate

Range("A1").Select

ActiveCell.PasteSpecial xlPasteValues

ActiveWorkbook.Save

Workbooks("サンプル1.xlsx").Close

Workbooks("サンプル2.xlsx").Close 

End Sub

こんな感じになります。

流れは同じです。

流れ

①エクセルファイルを開く

②開いたエクセルからデータをコピー

③ペーストしたいファイルを選択

④データを貼り付け

⑤ファイルを保存

⑥ファイルを閉じる

です。

VBAに慣れている人からすると、むずかしくはなく、

VBAを勉強し始めた人からすると、すんなりとはいかない内容です。

しかし、パワーオートメイトを使うと、マウスでドラッグ&ドロップするだけで、自動化のフローを作れてしまします。

すごいですね、パワーオートメイト。 

koneka1208

koneka1208

自己紹介

自分の写真
エクセル好きの窓際会社員です。 エクセルの操作法や日々の会社で得た知見などを発信していきます。 よろしくお願いします。

ブログ アーカイブ

連絡フォーム

名前

メール *

メッセージ *

QooQ