2022年06月28日

はじめてExcelコピペ処理をPowerAutomateで自動化してみた

はじめてExcelコピペ処理をPowerAutomateで自動化してみた

はじめに

この記事では、マイクロソフトのRPAソフト「デスクトップ向けPowerAutomate(パワーオートメート) 」でのExcel(エクセル)データのコピペ処理を自動化するフローについて解説します。
さまざまなシーンで使われている表計算ソフトExcel(エクセル)、単純なコピペ処理を毎回手作業でやっていませんか?
同じ処理を手作業で繰り返すのって、面倒くさい!”
“単純な操作だけどデータ量が多くて範囲指定ひとつするのも大変!”
”同じ操作なのになぜかミスするときがある…

そんな方に必見!
この記事では、「顧客マスタファイルに新規顧客データをコピペする処理」を例に、RPAソフト「デスクトップ向けPowerAutomate」での自動化フローの作り方やExcelのアクション種類、Excel操作の自動化機能マクロとの違いを解説します。

※「そもそもRPAって何?」という素朴な疑問からRPAソフト「PowerAutomate」の使い方まで、いまさら聞けないRPAの基本をわかりやすく解説については別の記事で解説していますので、よろしければ。こちらもお役に立てください。
≫はじめてのPowerAutomate解説ページはこちら

無料RPA研修企業向けRPA研修サービス

目次

※運営会社「日本リック」について
日本リックは1984年設立の総合人材サービス会社です。規模こそ大きくないですが、取引先企業や派遣で働くみなさんとの信頼関係を大切に、満足いただけるサービスを提供しています。
≫日本リックの派遣の紹介ページはこちら

PowerAutomateとExcelマクロの違い

RPAソフト「PowerAutomate」での自動化を解説する前に、「PowerAutomate」とExcelマクロの違いについて、確認しておきましょう。
違いはいくつかありますが、一番大きな点は、自動化したい内容がExcelだけで完結するのかそうでないのかです。

Excelマクロとは

Excelマクロは、「 Excelの操作」を自動化する機能です。
マクロを作成することで、頻繁に行うデータの加工や集計といったさまざまなExcel操作をボタン一つで実行することができます。
ただし、いずれの処理もすべてをExcel内で完結する作業に限られます。

マクロの作成方法は、[開発]タブの[マクロの記録]ボタンを使い、実際の操作を行うものなので、プログラミング知識がない人でも作ることができます。
[開発]タブは、標準では非表示になっているので、表示させてから使います。

作成したマクロは「VBA」というプログラミング言語で記述されます。VBAを使うことで「変数」や「繰り返し」、「条件分岐」などを利用し、さらに複雑な業務を自動化することが可能になります。

PowerAutomateの特徴

一方RPAソフトは、Excelだけの操作の自動化にとどまらず、業務ソフトとの連携処理やWebアプリケーションの操作を自動化することができます。
RPAソフト「PowerAutomate」は「ノーコード」「ローコード」といって、プログラミング知識がなくても使えるように、わかりやすくできているという特徴があります。
英字だらけVBAの言語は、なかなかハードルが高く手が出しにくいという人にも、PowerAutomateは魅力的なソフトです。
また、企業サーバーやクラウドも使えるので、膨大なデータ処理も可能になるなど、RPAは今後も発展していく分野!これから幅広く業務の自動化を進めるなら、RPAソフトを活用するのが良いでしょう。
また、PowerAutomateには、「レコーダー機能」といってExcel「マクロの記録」のような自動登録の機能があります。
マクロは使ったことがあるけど、PowerAutomateは使ったことがない方は、「レコーダー機能」も試してみてください。マクロと同じように使えます!

Power Automate デスクトップ向けで自動化できる業務の例
・ExcelデータをWebページで上の入力欄に転記する
・セミナー参加者にお礼のメールを一括で送る
・売り上げデータを販売管理システムに入力する

<参考>PowerAutomateレコーダー機能の使い方

PowerAutomateレコーダー機能の使い方は次のとおりです。
①レコーダーボタンを選択
②[記録]ボタンを選択
③実際の操作を行う。
 指定する画面上に赤線が表示されます。
 きちんと画面が認識されるように、少しゆっくり操作しましょう。
④[終了]ボタンを選択
 画面上に行った操作がアクションとして表示されます。

操作はマクロと同じく簡単です。
ただ、マクロと同じくレコーダー機能だけでは単純な操作しか自動化できません。
「繰り返し」や「条件分岐」、「変数」の利用などレコーダー機能だけでは自動化できない作業もたくさんあります。
複雑な作業を自動化するためには、用意されている様々な「アクション」を使ってフローを作る必要があります。
レコーダー機能

Excelコピペ処理フローの確認

では、さっそくす顧客マスタファイルに新規顧客データをコピペする処理を例にフローを作成していきます。
自動化を使わずに実際に手で行うと数分の処理が約10秒で完了!データ量やPCのスペックなどにもよりますが…とにかく簡単!便利です!
それぞれの使うファイルは次のとおりです。

・顧客マスタ.xlsx:1行目がタイトル行+100件の顧客データ(2~101行目)
・新規顧客 データ.xlsx:1行目がタイトル行+5件の新規顧客データ(2~6行目)

コピペ業務イメージ

実際の動きは、↓のとおりです。手作業だと数分かかる業務が数秒でできる!
コピペアニメーション

自動化するExcelコピペ処理は次のような動作です。

1.Excelの起動:顧客マスタを開く
2.Excelの起動:新規顧客データを開く
3.Excelワークシートのセルをコピー:新規顧客データ
4.Excelワークシートにセルを貼り付け:顧客マスタ
5.Excelを閉じる:顧客マスタを上書き保存
6.Excelを閉じる

コピペ全フロー

それではPowerAutomateのアクションを使い、「顧客マスタファイルに新規顧客データをコピペする」フローを作成していきましょう。

Excelを起動

まず、Excelを起動し使うファイルを開きます。
アクションを選択

「Excelの起動」では、起動時にどのファイルを開くか選択ができます。
・空のドキュメントを使用:新しいExcelファイルを開く
・次のドキュメントを開く:既存のExcelファイルを開く
Excelの起動

既に作成済・保存済のファイルを使う場合には、「Excelの起動」で「次のドキュメントを開く」を選択し、対象となる各ファイルを指定します。

ExcelInstance(エクセルインスタンス)とは?

「Excelの起動」を行うと、「ExcelInstance(エクセルインスタンス) 」という「変数」が自動的に作られます。
変数とは、「値を入れる箱」のこと。今回実施した「Excelの起動」処理を、「箱」に入れその処理(箱)に「ExcelInstance」という名前を付ける、といった意味です。

さらにもう一つ「Excelの起動」をすると「ExcelInstance2」という変数が自動的に作られます。
複数のExcelファイルを使った処理の場合は、それぞれの「Excelの起動」処理に変数名を決めていきます。
わかりやすい名前にすることで、どのExcel処理なのかを明確に使い分けることができます。

<変数名例>
Master_InstanceExcel ←ファイル「顧客マスタ.xlsx」を起動する処理
NewKokyaku_Instance ←Excelファイル「新規顧客データ.xlsx」を起動する処理
※注意)変数名は日本語ではつけられません

今回の指定内容は次のとおりです。

Excelの起動①
 使うファイル:顧客マスタ.xlsx
 Excelインスタンス:Master_Instance
 ※インスタンス名を「ExcelInstance」から「Master_Instance」に変更
Excelの起動②
 使うファイル:新規顧客データ.xlsx
 Excelインスタンス:NewKokyaku_Instance

Excel2つの起動

Excelワークシートのデータをコピー

作業をするExcelファイルが開けたら、次にExcelワークシートのデータをコピーします。
アクション[Excelワークシートからセルをコピー]では、コピー対象をコピーモード欄で指定します。

コピー対象は、セル単位だったり、ワークシートすべてだったり、データ範囲がその都度変わる場合だったり…さまざまなパターンがあり、選択肢は次のとおりです。

<コピーモード>コピー対象範囲
①単一のセル
②セル範囲の値
③選択範囲の値
④ワークシートに含まれる使用可能なすべての値

Excelワークシートからセルをコピー

①単一セルの値:先頭列や先頭行として一つのセルを指定します。
 例)先頭列:A 先頭行:1
②セル範囲の値:セルの範囲を指定します。
 例)先頭列:A 先頭行:2
 最終列:G 最終行:6
③選択範囲の値;あらかじめ選択した範囲をコピーします
あらかじめ選択するには、[Excelワークシート内のセルを選択]など選択するアクションを使います。
④ワークシートに含まれる使用可能なすべての値:シート全部をコピーします

「新規顧客データ」をコピーする

それでは、実際に「新規顧客データ」をコピーしてみましょう。
1行目はフィールド名(タイトル行)なのでコピー範囲外とし、2行目から7行目までの顧客データのみをコピーします。
コピペ範囲と貼り付け先

指定内容は次のとおりです
 Excelインスタンス:%NewKokyaku_Instance%
コピーモード:[セル範囲の値]
 先頭列:A
 先頭行:2
 最終列:G
 最終行:6
Excelワークシートからセルをコピー

Excelワークシートにセルを貼り付け

コピーしたら、次にデータを貼り付けます。アクション[Excelワークシートにセルを貼り付け]では、貼り付け先を貼り付けモード欄にします。

<貼り付けモード>貼り付け先
①指定したセルの上:貼り付けたい先頭の列と行を指定します。
 例)セルA102の場合
 列:A
 行:102
②現在のアクティブなセルの上
 あらかじめセルをアクティブにするには、アクション[Excelワークシート内のセルをアクティブ化]を使います。

「顧客マスタ」に「新規顧客データ」を貼り付ける

顧客マスタには、タイトル行を含め101行目まで既存データが登録済みです。新規顧客データを貼り付けるのは、顧客マスタの最終行の次の行なので、次のように指定します。
 Excelインスタンス:%Master_Instance%
 貼り付けモード;指定したセル上
 列:A
 行:102
Excelワークシートにセルを貼り付け

Excelファイルを閉じる

貼りつけが終わったら、最後にアクション[Excelを閉じる]を使い、ファイルを保存しExcelを終了します。
ファイルの保存のみをしたいときは、アクション[Excelの保存]を使います。
ファイルの保存方法には、種類があり[Excelを閉じる前]で指定します。

<Excelを閉じる前>
①ドキュメントを保存しない:上書き保存をせずに閉じる場合
②ドキュメントを保存:上書き保存をして閉じる場合
③名前を付けてドキュメントを保存:ファイル名やファイル形式を変更し保存する場合

「名前を付けてドキュメントを保存」では、Excelファイル保存と同じくさまざまなファイル形式で保存ができます。

代表的なものは次のとおりです。

Excel ブック(.xlsx)
Excel マクロ有効ブック(.xlsm)
Webページ(.htm、.html)
Excel テンプレート(.xltx)
テキスト(.txt)
XML スプレッドシート(.xml)
CSV(.csv)

Excelを閉じる

「顧客マスタ」ファイルを保存する

今回は、「顧客マスタ」ファイルにデータを貼り付けたので上書き保存します。「ドキュメントを保存」を選択しExcelを閉じます。
 Excelインスタンス:%Master_Instance%

新顧客データは、データをコピーしただけなので、「ドキュメントを保存しない」を選択してExcelを終了します。
Excelを閉じる

フローの実行

これでExcelデータのコピペフローは完成です。早速、作成した自動化のフローを動かしてみましょう。
PowerAutomateでは、実行ボタンで自動化フローを動かします。

1.Excelを起動してファイルを開き
2.データ範囲を認識しコピー
3.目的のワークシートのセル位置に貼り付け
4.最後に保存しExcelを閉じる。

この一連の動作を10秒ほどで行うことができます。
※PCや通信環境、データ量にも異なります。

頻繁に同じような作業が発生するときは、本当に便利!
一度使ってしまうと毎回手作業で行うことは絶対にできません。

<参考>コピペ範囲や貼り付け場所が可変の場合

業務では、データ量によってコピー範囲が変わったり、貼り付け先が異なったりすることもあります。
コピー範囲や貼り付け先が固定ではなく、毎回変わる可変の場合の指定方法についても紹介します。

追加・変更するフローは次のとおりです。
1.Excelの起動:顧客マスタを開く
2.Excelの起動:新規顧客データを開く
3.Excelワークシートから列における最初の空の行を取得:顧客マスタ
4.Excelワークシートから列における最初の空の行を取得:新規顧客データ
5.Excelワークシートのセルをコピー:新規顧客データ 最終行を変更
6.Excelワークシートにセルを貼り付け:顧客マスタ 貼り付け先の行を変更
7.Excelを閉じる:顧客マスタを上書き保存
8.Excelを閉じる

全フロー追加変更あり

Excelワークシートから列における最初の空の行を取得

データ量によってコピー範囲が変わったり、貼り付け先が固定ではなく毎回変わる可変の場合は、
コピーや貼り付けをする前に、アクション「Excelワークシートから列における最初の空の行を取得」を使います。

このアクションでは、特定の列の「最初の空の行番号」を取得することができ、その行番号が変数「FirstFreeRowOnColumn」に格納されます。
この変数を利用することで、どこまでデータがあるか、データ範囲を把握することができます。
・変数名:FirstFreeRowOnColumn

最初の空の行って

A列において6行目までデータが入力されているため、A列の「最初の空の行」は7行目(セルA7)となり、変数「FirstFreeRowOnColumn」には「7」が格納されます。
今回は、変数名を「NewKokyaku_FF_Row」に変更し使っていきます。

列における最初の空の行①

顧客マスターのシートには、1行目にフィールド名100件データが登録済みなので、列「A」の最初の空の行は「102」となり、変数「FirstFreeRowOnColumn」には「102」が格納されます。
今回は、変数名を「Master_FirstFreeRow」に変更します。

列における最初の空の行②

Excelワークシートのデータをコピー

次に、Excelワークシートから列における最初の空の行を取得で取得した値を活用して、コピー範囲を指定します。
6行目までデータがある場合、変数「NewKokyaku_FF_Row」には最初の空の行番号である「7」が格納されています。
「7」はデータがない最初の空の行なので、ここから「1」を引いた行(値)がデータの最終行、つまり、コピー範囲の最終行となります。

「1」を引く変数の指定は「NewKokyaku_FF_Row -1」。PowerAutomateにおけるコピー範囲の指定内容は次のとおりです。

Excelインスタンス:%NewKokyaku_Instance%
コピーモード:[セル範囲の値]
先頭列:A
先頭行:2
最終列:G
最終行:%NewKokyaku_FF_Row – 1%

Excelワークシートからセルをコピー

Excelワークシートにセルを貼り付け

貼り付けの指定も「Excelワークシートから列における最初の空の行を取得」で取得した値を使います。

101行目までデータがある場合、変数「Master_FirstFreeRow」には最初の空の行番号である「102」が格納されています。
貼りつけの指定では、「最初の空の行番号」である「Master_FirstFreeRow」を指定します。そうすることで、データ量が変わっても最初の空の行に貼りつけることができます。

貼りつけの指定内容は次のとおりです。
Excelインスタンス:%Master_Instance%
貼り付けモード;指定したセル上
列:A
行:%Master_FirstFreeRow%

Excelワークにセルを貼り付け

さいごに

いかがでしたか?
RPAソフト「PowerAutomate」でのExcelコピペ処理の方法をご理解いただけましたか?
PowerAutomateは、無料で使えるRPAソフトウェアです。活用することで、Excelだけでなく幅広い操作の自動化を実現することが可能になります。
自動化が当たり前になるそんな来るべき未来に向けて、あなたもPowerAutomateを活用してみましょう。

≫「PowerAutomateDesktopでの条件分岐[If]の使い方」解説ページはこちら

無料RPA研修企業向けRPA研修サービス
マイキャリア無料メルマガ登録
マイキャリア無料メルマガ登録 未経験から始める事務 未経験から始めるインフラエンジニア 未経験から始める法人営業 日本リック新卒採用情報
人気記事ランキング