「Excel」アクションを使いこなす②

Power Automate Desktop
「Excel」アクションを使いこなす ②

日本にいる多くのユーザーはWindows環境で仕事をしており、Excelは日常的に使っているアプリケーションのひとつでしょう。Power Automate DesktopではそんなExcelを自動化するためのアクションが豊富に用意されています。Microsoftが提供しているツールだけにOffice製品の自動化には力が入れられています。デザイナー画面のExcelプルダウンメニューを開くと、直下に11種類のアクション、詳細から更に17種類のアクションを扱うことができます。このページでは「詳細」メニューにある17のアクションの動きを確認していきましょう。

(なお、2022/8/9執筆時点でのアクション数であり、今後、利用できるオプションが増える可能性があります。)

1. Excelマクロの実行

Excelマクロの実行

「Excelマクロの実行」アクションを利用すると、RPA内でExcelマクロを実行することができます。マクロとは複数の操作をまとめて必要に応じて呼び出せるようにする機能を指します。Excelマクロの他にもWordマクロ、PowerPointマクロなどあります。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は「Excelの起動」アクションなどで先に生成する必要があります。

Excelマクロの実行設定画面

「マクロ」には実行したいマクロの名前を入力しましょう。マクロの名前はExcelファイルを開いて「開発タブ>マクロ」で確認できます。なお、開発タブはデフォルトだと表示されていないので、その場合は「ファイルタブ>その他(画面左下)>オプション>リボンのユーザー設定」の開発にチェックを入れて有効にしてください。

マクロの名前確認方法

今回、実行するマクロの中身はとてもシンプルでA1セルの背景色を赤色に変化させるだけです。1行のコードで実装できます。

マクロコード

実行してみると下図のようにA1セルの背景が赤くなります。

実行前 実行後

2. アクティブなExcelワークシートの取得

アクティブなExcelワークシートの取得

「アクティブなExcelワークシートの取得」アクションを利用すると、現在アクティブになっているワークシートの名前とインデックスを取得することができます。設定画面はExcelインスタンスを選択すれば終了です。選択できるインスタンスがない場合は「Excelの起動」アクションなどを利用して先に生成する必要があります。

アクティブなExcelワークシートの取得設定画面

下図のように「test」というワークシートがアクティブな状態で実行してみましょう。インデックスが「3」、名前が「test」という形で変数に格納されます。

Excel画面 実行結果後の取得変数

3. すべてのExcelワークシートの取得

すべてのExcelワークシートの取得

「すべてのExcelワークシートの取得」を利用すると、指定したExcelファイルのすべてのシート名をリストで取得することができます。設定画面はExcelインスタンスを選択すれば終了です。選択できるインスタンスがない場合は「Excelの起動」アクションなどを利用して先に生成する必要があります。

すべてのExcelワークシートの取得設定画面

下図のように「data」「sample」「test」の3つのワークシートがある状態で実行してみましょう。実行後に変数にはそれぞれのシート名がテキスト値でリストとして格納されます。

Excel画面 実行結果後の取得リスト

4. Excelワークシートを削除

Excelワークシートを削除

「Exceワークシートを削除」アクションを利用すると、指定したワークシートを削除することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。次にどのワークシートを削除するかを指定します。指定方法は名前とインデックスの2通りです。下図の場合は「test」という名前のワークシートを削除するように指定しています。

Excelワークシートを削除設定画面

実行すると下図のように「test」というワークシートが削除されます。なお、インデックスを指定して同じように削除したい場合はインデックスは1から数えるので「3」と指定すれば同じ動きを再現できます。

実行前 実行後

5. Excelワークシートの名前を変更

Excelワークシートの名前を変更

「Exceワークシートの名前を変更」アクションを利用すると、指定したワークシートの名前を変更することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。次にどのワークシートの名前を変更するかを指定します。指定方法は名前とインデックスの2通りです。最後にワークシートの新しい名前を設定します。下図の場合は「test」という名前のワークシートを「example」に変更するように指定しています。

Excelワークシートの名前を変更設定画面

実行すると下図のように「test」というワークシートの名前が「example」に変更されます。なお、インデックスを指定して同じように変更したい場合はインデックスは1から数えるので「3」と指定すれば同じ動きを再現できます。

実行前 実行後

6. Excelワークシート内のセルをアクティブ化

Excelワークシート内のセルをアクティブ化

「Excelワークシート内のセルをアクティブ化」アクションを利用すると、アクティブになっているワークシートの中の指定したセルをアクティブにすることができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いてアクティブにセルの指定方法ですが、絶対位置で指定する方法と相対位置で指定する方法があります。絶対位置で指定する場合は「絶対位置で指定したセル」を選択した後に、アクティブにしたいセルの行と列を入力しましょう。

Excelワークシート内のセルをアクティブ化設定画面

実行すると、アクティブになっているセルがA1からA3に変化しています。

実行前 実行後

続いて「相対位置で指定したセル」を選択した場合、現在アクティブになっているセルからどれだけ動かすかを指定します。下図の場合だと、下に2つ分移動する設定になります。

Excelワークシート内のセルをアクティブ化設定画面2

実行すると、下図のようにアクティブ化されているセルがA1から2つ下のセルであるA3へと変化しています。

実行前2 実行後2

7. Excelワークシート内のセルを選択

Excelワークシート内のセルを選択

「Excelワークシート内のセルを選択」アクションを利用すると、アクティブになっているワークシートのセル選択範囲を指定することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いてセル範囲の選択方法ですが、「セルの範囲」と「アクティブなセルのセル範囲」の2つの選択肢があります。前者は絶対的な範囲を指定し、後者は現在アクティブになっているセルを基準に相対的に範囲を指定します。下図の場合だと、A1からB3にかけてセルを選択するように絶対指定しています。

Excelワークシート内のセルを選択設定画面

実行すると、下図のようにA1だけ選択されていましたがA1からB3まで範囲選択されました。

実行前 実行後

一方、「アクティブなセルのセル範囲」を選択した場合は現在、アクティブになっているセルからどれだけの範囲を選択するかを相対的に指定します。下図の場合だと、アクティブなセルから右に1つ、下に2つ選択するように設定しています。

Excelワークシート内のセルを選択設定画面2

実行すると、元々A1だけ選択していましたが、右に1つ、下に2つ分選択範囲が広がり、A1からB3まで範囲選択されました。

実行前2 実行後2

8. 選択したセル範囲をExcelワークシートから取得

選択したセル範囲をExcelワークシートから取得

「選択したセル範囲をExcelワークシートから取得」を利用すると、選択範囲の左上のセルの行と列、右下のセルの行と列を取得することができます。設定画面はExcelインスタンスを選択すれば終了です。選択できるインスタンスがない場合は「Excelの起動」アクションなどを利用して先に生成する必要があります。

選択したセル範囲をExcelワークシートから取得設定画面

実行すると、下図のようにA1からB3まで範囲選択されていた場合、FirstColumnIndexに左上セルの列、FirstRowIndexに左上セルの行、LastColumnIndexに右下セルの列、LastRowIndexに右下セルの行の値がそれぞれ格納されました。

Excel画面 実行結果後取得変数

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

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

「Excelワークシートからセルをコピー」を利用すると、指定したセルをコピーすることができます。設定画面では最初にExcelインスタンスを選択する必要があります。選択できるインスタンスがない場合は先に生成する必要があります。続いてコピーする方法を「単一セルの値」「セル範囲の値」「選択範囲の値」「ワークシートに含まれる使用可能なすべての値」から選択します。「単一セルの値」を選択した場合は、続いてコピーした列と行を入力すれば終了です。

Excelワークシートからセルをコピー設定画面

上図設定で実行すると確かにA1のセルがコピーされました。

実行結果

「セル範囲の値」は複数のセルをコピーしたい時に利用します。下図の場合だと、A1からA3のセルまでコピーする設定となります。

Excelワークシートからセルをコピー設定画面2

実行すると確かにA1からA3までコピーされています。

実行結果2

「選択範囲の値」は選択しているセル範囲をコピーしたい時に利用します。

Excelワークシートからセルをコピー設定画面3

下図のようにA2からA4の範囲が選択されているときに実行すると、その範囲の選択がコピーされます。

実行前 実行後

「ワークシートに含まれる使用可能なすべての値」を選択すると、アクティブなワークシートのすべての値をコピーします。

Excelワークシートからセルをコピー設定画面4

実行すと、A1からA5まで入力されているすべてのセルがコピーされました。

実行結果

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

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

「Excelワークシートにセルを貼り付け」アクションを利用すると、前項でコピーしたセルを別のセルに貼り付けることができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。貼り付けの方法はセルを指定する方法と現在アクティブになっているセルに貼り付ける方法の2種類あります。

Excelワークシートにセルを貼り付け設定画面

上図の設定で実行した場合、下図のようにA1のセル1つだけをコピーしていた場合はB1のセルひとつにだけ貼り付けされます。A1からA5まで複数セルがコピーしていた場合はB1からB5のセルまで貼り付けされます。

実行結果(単体) 実行結果(複数)

11. Excelワークシートから削除する

Excelワークシートから削除する

「Excelワークシートから削除する」を利用すると、セルを削除することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。セルの削除方法は単一のセルを削除するか範囲で削除するか選択できます。最後にセルを詰める方向を指定します。下図の場合はA1の単一セルを削除し、削除した後にセルを左側に詰める設定をしています。

Excelワークシートから削除する設定画面

実行すると下図のようにA1にあった「おはようございます」のセルが削除され、B1以降のセルが左にシフトします。結果としてA1はB1にあった「いってきます」のセルに置き換わり、B1セルは空白になります。

実行前 実行後

続いて、「セル範囲の値」を選択した場合は複数のセルを削除することができます。下図の場合だと、A2からB3までのセルを削除し、上方向にセルをシフトするように設定しています。

Excelワークシートから削除する設定画面2

実行すると、下図のようにA2 からB3までのセルが削除され、元々A4、B4以下にあったセルが上方向に2行分シフトしています。結果として5行2列だったデータが3行2列に変化しています。

実行前2 実行後2

12. Excelワークシートに行を挿入

Excelワークシートに行を挿入

「Excelワークシートに行を挿入」アクションを使うと、Excelファイルのアクティブなワークシートに行を挿入することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて挿入したい行の位置を「行インデックス」に入力します。下図の場合は3行目に新しく行が追加されるように設定しています。

Excelワークシートに行を挿入設定画面

実行すると、確かに3行目に新しく行が追加されました。

実行前 実行後

13. Excelワークシートから行を削除

Excelワークシートから行を削除

「Excelワークシートから行を削除」アクションを使うと、Excelファイルのアクティブなワークシートの行を削除することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて削除したい行の位置を「行の削除」に入力します。下図の場合は3行目の行が削除されるように設定しています。

Excelワークシートから行を削除設定画面

実行すると、確かに3行目にあった行が削除されました。

実行前 実行後

14. Excelワークシートに列を挿入

Excelワークシートに列を挿入

「Excelワークシートに列を挿入」アクションを使うと、Excelファイルのアクティブなワークシートに列を挿入することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて挿入したい列の位置を「列」に入力します。下図の場合は2列目に新しく列が追加されるように設定しています。

Excelワークシートに列を挿入設定画面

実行すると、確かに2列目に新しく列が追加されました。

実行前 実行後

15. Excelワークシートから列を削除

Excelワークシートから列を削除

「Excelワークシートから列を削除」アクションを使うと、Excelファイルのアクティブなワークシートの列を削除することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて削除したい列の位置を「列の削除」に入力します。下図の場合は2列目の列が削除されるように設定しています。

Excelワークシートから列を削除設定画面

実行すると、確かに2列目にあった列が削除されました。

実行前 実行後

16. Excelワークシート内のセルを検索して置換する

Excelワークシート内のセルを検索して置換する

「Excelワークシート内のセルを検索して置換する」を実行すると、条件に合うセルを検索するか、検索後に置換することが可能です。検索に合致した条件はそのセルの列と行を取得します。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。続いて検索するか、検索後に置換するかを選択します。「すべての一致」をONにすると、検索条件に合致するすべてのセルを取得します。OFFは最初に合致したセルひとつだけを取得します。「検索するテキスト」には検索したいワードを入力します。「検索モード」で置換を選択した場合のみ「置換するテキスト」も入力します。「一致するサポート案件」をONにすると、大文字小文字を区別してくれます。「セルの内容が完全に一致する」をONにすると完全一致条件で検索します。OFFにすると部分一致で検索できます。「検索条件」は行と列で選択でき、行にすると1行目のすべての列を検索してから次の行と行優先で検索され、列にすると列優先で検索されます。下図の場合、「hello」という値を持つセルすべて完全一致で検索し、「thank you」に置換します。その時に、大文字小文字は区別し、行毎に検索されます。

Excelワークシート内のセルを検索して置換する設定画面

下図のExcelファイルで実行してみましょう。

実行前

実行結果は以下の通りです。「hello」が「thank you」に置換されていますが、大文字がある「Hello」や、途中までしかない「hell」は置換されていません。

実行後

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

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

「Excelワークシートから列における最初の空の行を取得」アクションを実行すると、指定した列を対象とした最初の空行を取得することができます。設定画面では最初にExcelインスタンスを選択します。選択できるインスタンスがない場合は先に生成する必要があります。「列」には空の行を取得した列名か列インデックスを入力します。下図の場合はB列の値を取得するように指定しています。

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

下図のようにExcelファイルのB列は5行目から空白になっています。実行すると、5という値を取得することができました。列インデックスを指定しても同じように動かせるので、「列」に「2」と入力した場合も同じように動きます。

Excel画面 実行後取得変数

以上、「Excel」の「詳細」メニューにあるアクションについての解説でした。日常的によく使うExcelの自動化は業務を自動化させるうえで必須といえるでしょう。VBAやPythonを使う方法など自動化にはたくさんの方法がありますが、プログラミングを使わずに自動化できるのは筆者の知る限りRPAだけです。うまく使いこなして、業務を自動化させていきましょう。

→「Power Automate Desktop」の他の操作も見る

執筆者プロフィール

プロフィール画像

伊藤 丈裕

(株)サムテックのシステムエンジニア。応用情報技術者資格保有。
27歳の時、営業から完全未経験で転職。開発とWebマーケティングを担当。得意言語はJavaとJavaScript。

タイトルとURLをコピーしました