Power Automate Desktop
「Excel」アクションを使いこなす ②
日本にいる多くのユーザーはWindows環境で仕事をしており、Excelは日常的に使っているアプリケーションのひとつでしょう。Power Automate DesktopではそんなExcelを自動化するためのアクションが豊富に用意されています。Microsoftが提供しているツールだけにOffice製品の自動化には力が入れられています。デザイナー画面のExcelプルダウンメニューを開くと、直下に11種類のアクション、詳細から更に17種類のアクションを扱うことができます。このページでは「詳細」メニューにある17のアクションの動きを確認していきましょう。
(なお、2022/8/9執筆時点でのアクション数であり、今後、利用できるオプションが増える可能性があります。)
- 1. Excelマクロの実行
- 2. アクティブなExcelワークシートの取得
- 3. すべてのExcelワークシートの取得
- 4. Excelワークシートを削除
- 5. Excelワークシートの名前を変更
- 6. Excelワークシート内のセルをアクティブ化
- 7. Excelワークシート内のセルを選択
- 8. 選択したセル範囲をExcelワークシートから取得
- 9. Excelワークシートからセルをコピー
- 10. Excelワークシートにセルを貼り付け
- 11. Excelワークシートから削除する
- 12. Excelワークシートに行を挿入
- 13. Excelワークシートから行を削除
- 14. Excelワークシートに列を挿入
- 15. Excelワークシートから列を削除
- 16. Excelワークシート内のセルを検索して置換する
- 17. Excelワークシートから列における最初の空の行を取得
1. Excelマクロの実行
「Excelマクロの実行」アクションを利用すると、RPA内でExcelマクロを実行することができます。マクロとは複数の操作をまとめて必要に応じて呼び出せるようにする機能を指します。Excelマクロの他にもWordマクロ、PowerPointマクロなどあります。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は「Excelの起動」アクションなどで先に生成する必要があります。
「マクロ」には実行したいマクロの名前を入力しましょう。マクロの名前はExcelファイルを開いて「開発タブ>マクロ」で確認できます。なお、開発タブはデフォルトだと表示されていないので、その場合は「ファイルタブ>その他(画面左下)>オプション>リボンのユーザー設定」の開発にチェックを入れて有効にしてください。
今回、実行するマクロの中身はとてもシンプルでA1セルの背景色を赤色に変化させるだけです。1行のコードで実装できます。
実行してみると下図のようにA1セルの背景が赤くなります。
2. アクティブなExcelワークシートの取得
「アクティブなExcelワークシートの取得」アクションを利用すると、現在アクティブになっているワークシートの名前とインデックスを取得することができます。設定画面はExcelインスタンスを選択すれば終了です。選択できるインスタンスがない場合は「Excelの起動」アクションなどを利用して先に生成する必要があります。
下図のように「test」というワークシートがアクティブな状態で実行してみましょう。インデックスが「3」、名前が「test」という形で変数に格納されます。
3. すべてのExcelワークシートの取得
「すべてのExcelワークシートの取得」を利用すると、指定したExcelファイルのすべてのシート名をリストで取得することができます。設定画面はExcelインスタンスを選択すれば終了です。選択できるインスタンスがない場合は「Excelの起動」アクションなどを利用して先に生成する必要があります。
下図のように「data」「sample」「test」の3つのワークシートがある状態で実行してみましょう。実行後に変数にはそれぞれのシート名がテキスト値でリストとして格納されます。
4. Excelワークシートを削除
「Exceワークシートを削除」アクションを利用すると、指定したワークシートを削除することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。次にどのワークシートを削除するかを指定します。指定方法は名前とインデックスの2通りです。下図の場合は「test」という名前のワークシートを削除するように指定しています。
実行すると下図のように「test」というワークシートが削除されます。なお、インデックスを指定して同じように削除したい場合はインデックスは1から数えるので「3」と指定すれば同じ動きを再現できます。
5. Excelワークシートの名前を変更
「Exceワークシートの名前を変更」アクションを利用すると、指定したワークシートの名前を変更することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。次にどのワークシートの名前を変更するかを指定します。指定方法は名前とインデックスの2通りです。最後にワークシートの新しい名前を設定します。下図の場合は「test」という名前のワークシートを「example」に変更するように指定しています。
実行すると下図のように「test」というワークシートの名前が「example」に変更されます。なお、インデックスを指定して同じように変更したい場合はインデックスは1から数えるので「3」と指定すれば同じ動きを再現できます。
6. Excelワークシート内のセルをアクティブ化
「Excelワークシート内のセルをアクティブ化」アクションを利用すると、アクティブになっているワークシートの中の指定したセルをアクティブにすることができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いてアクティブにセルの指定方法ですが、絶対位置で指定する方法と相対位置で指定する方法があります。絶対位置で指定する場合は「絶対位置で指定したセル」を選択した後に、アクティブにしたいセルの行と列を入力しましょう。
実行すると、アクティブになっているセルがA1からA3に変化しています。
続いて「相対位置で指定したセル」を選択した場合、現在アクティブになっているセルからどれだけ動かすかを指定します。下図の場合だと、下に2つ分移動する設定になります。
実行すると、下図のようにアクティブ化されているセルがA1から2つ下のセルであるA3へと変化しています。
7. Excelワークシート内のセルを選択
「Excelワークシート内のセルを選択」アクションを利用すると、アクティブになっているワークシートのセル選択範囲を指定することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いてセル範囲の選択方法ですが、「セルの範囲」と「アクティブなセルのセル範囲」の2つの選択肢があります。前者は絶対的な範囲を指定し、後者は現在アクティブになっているセルを基準に相対的に範囲を指定します。下図の場合だと、A1からB3にかけてセルを選択するように絶対指定しています。
実行すると、下図のようにA1だけ選択されていましたがA1からB3まで範囲選択されました。
一方、「アクティブなセルのセル範囲」を選択した場合は現在、アクティブになっているセルからどれだけの範囲を選択するかを相対的に指定します。下図の場合だと、アクティブなセルから右に1つ、下に2つ選択するように設定しています。
実行すると、元々A1だけ選択していましたが、右に1つ、下に2つ分選択範囲が広がり、A1からB3まで範囲選択されました。
8. 選択したセル範囲をExcelワークシートから取得
「選択したセル範囲をExcelワークシートから取得」を利用すると、選択範囲の左上のセルの行と列、右下のセルの行と列を取得することができます。設定画面はExcelインスタンスを選択すれば終了です。選択できるインスタンスがない場合は「Excelの起動」アクションなどを利用して先に生成する必要があります。
実行すると、下図のようにA1からB3まで範囲選択されていた場合、FirstColumnIndexに左上セルの列、FirstRowIndexに左上セルの行、LastColumnIndexに右下セルの列、LastRowIndexに右下セルの行の値がそれぞれ格納されました。
9. Excelワークシートからセルをコピー
「Excelワークシートからセルをコピー」を利用すると、指定したセルをコピーすることができます。設定画面では最初にExcelインスタンスを選択する必要があります。選択できるインスタンスがない場合は先に生成する必要があります。続いてコピーする方法を「単一セルの値」「セル範囲の値」「選択範囲の値」「ワークシートに含まれる使用可能なすべての値」から選択します。「単一セルの値」を選択した場合は、続いてコピーした列と行を入力すれば終了です。
上図設定で実行すると確かにA1のセルがコピーされました。
「セル範囲の値」は複数のセルをコピーしたい時に利用します。下図の場合だと、A1からA3のセルまでコピーする設定となります。
実行すると確かにA1からA3までコピーされています。
「選択範囲の値」は選択しているセル範囲をコピーしたい時に利用します。
下図のようにA2からA4の範囲が選択されているときに実行すると、その範囲の選択がコピーされます。
「ワークシートに含まれる使用可能なすべての値」を選択すると、アクティブなワークシートのすべての値をコピーします。
実行すと、A1からA5まで入力されているすべてのセルがコピーされました。
10. Excelワークシートにセルを貼り付け
「Excelワークシートにセルを貼り付け」アクションを利用すると、前項でコピーしたセルを別のセルに貼り付けることができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。貼り付けの方法はセルを指定する方法と現在アクティブになっているセルに貼り付ける方法の2種類あります。
上図の設定で実行した場合、下図のようにA1のセル1つだけをコピーしていた場合はB1のセルひとつにだけ貼り付けされます。A1からA5まで複数セルがコピーしていた場合はB1からB5のセルまで貼り付けされます。
11. Excelワークシートから削除する
「Excelワークシートから削除する」を利用すると、セルを削除することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。セルの削除方法は単一のセルを削除するか範囲で削除するか選択できます。最後にセルを詰める方向を指定します。下図の場合はA1の単一セルを削除し、削除した後にセルを左側に詰める設定をしています。
実行すると下図のようにA1にあった「おはようございます」のセルが削除され、B1以降のセルが左にシフトします。結果としてA1はB1にあった「いってきます」のセルに置き換わり、B1セルは空白になります。
続いて、「セル範囲の値」を選択した場合は複数のセルを削除することができます。下図の場合だと、A2からB3までのセルを削除し、上方向にセルをシフトするように設定しています。
実行すると、下図のようにA2 からB3までのセルが削除され、元々A4、B4以下にあったセルが上方向に2行分シフトしています。結果として5行2列だったデータが3行2列に変化しています。
12. Excelワークシートに行を挿入
「Excelワークシートに行を挿入」アクションを使うと、Excelファイルのアクティブなワークシートに行を挿入することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて挿入したい行の位置を「行インデックス」に入力します。下図の場合は3行目に新しく行が追加されるように設定しています。
実行すると、確かに3行目に新しく行が追加されました。
13. Excelワークシートから行を削除
「Excelワークシートから行を削除」アクションを使うと、Excelファイルのアクティブなワークシートの行を削除することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて削除したい行の位置を「行の削除」に入力します。下図の場合は3行目の行が削除されるように設定しています。
実行すると、確かに3行目にあった行が削除されました。
14. Excelワークシートに列を挿入
「Excelワークシートに列を挿入」アクションを使うと、Excelファイルのアクティブなワークシートに列を挿入することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて挿入したい列の位置を「列」に入力します。下図の場合は2列目に新しく列が追加されるように設定しています。
実行すると、確かに2列目に新しく列が追加されました。
15. Excelワークシートから列を削除
「Excelワークシートから列を削除」アクションを使うと、Excelファイルのアクティブなワークシートの列を削除することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて削除したい列の位置を「列の削除」に入力します。下図の場合は2列目の列が削除されるように設定しています。
実行すると、確かに2列目にあった列が削除されました。
16. Excelワークシート内のセルを検索して置換する
「Excelワークシート内のセルを検索して置換する」を実行すると、条件に合うセルを検索するか、検索後に置換することが可能です。検索に合致した条件はそのセルの列と行を取得します。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて検索するか、検索後に置換するかを選択します。「すべての一致」をONにすると、検索条件に合致するすべてのセルを取得します。OFFは最初に合致したセルひとつだけを取得します。「検索するテキスト」には検索したいワードを入力します。「検索モード」で置換を選択した場合のみ「置換するテキスト」も入力します。「一致するサポート案件」をONにすると、大文字小文字を区別してくれます。「セルの内容が完全に一致する」をONにすると完全一致条件で検索します。OFFにすると部分一致で検索できます。「検索条件」は行と列で選択でき、行にすると1行目のすべての列を検索してから次の行と行優先で検索され、列にすると列優先で検索されます。下図の場合、「hello」という値を持つセルすべて完全一致で検索し、「thank you」に置換します。その時に、大文字小文字は区別し、行毎に検索されます。
下図のExcelファイルで実行してみましょう。
実行結果は以下の通りです。「hello」が「thank you」に置換されていますが、大文字がある「Hello」や、途中までしかない「hell」は置換されていません。
17. Excelワークシートから列における最初の空の行を取得
「Excelワークシートから列における最初の空の行を取得」アクションを実行すると、指定した列を対象とした最初の空行を取得することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。「列」には空の行を取得した列名か列インデックスを入力します。下図の場合はB列の値を取得するように指定しています。
下図のようにExcelファイルのB列は5行目から空白になっています。実行すると、5という値を取得することができました。列インデックスを指定しても同じように動かせるので、「列」に「2」と入力した場合も同じように動きます。
以上、「Excel」の「詳細」メニューにあるアクションについての解説でした。日常的によく使うExcelの自動化は業務を自動化させるうえで必須といえるでしょう。VBAやPythonを使う方法など自動化にはたくさんの方法がありますが、プログラミングを使わずに自動化できるのは筆者の知る限りRPAだけです。うまく使いこなして、業務を自動化させていきましょう。
→「Power Automate Desktop」の他の操作も見る執筆者プロフィール
伊藤 丈裕
(株)サムテックのシステムエンジニア。応用情報技術者資格保有。
27歳の時、営業から完全未経験で転職。開発とWebマーケティングを担当。得意言語はJavaとJavaScript。