Power Automate for desktop

たった1行でPower Automate for desktop(PAD)から自由自在にExcelを操作できるスクリプトの紹介

※ 本記事は「RPA(ロボティック・プロセス・オートメーション) Advent Calendar 2022」23日目(カレンダー2)の記事となります。


12月23日、RPACommunity主催で「【自動化やIT活用ネタ】ライトニングトーク大会 X’masスペシャル!」が開催されました。

クリスマススペシャルということで非常に豪華な登壇者陣のなか、僭越ながら私も末席に名を連ねることになりました。

ただ、諸事情によりリアルタイムでの参加が難しくなってしまったため、事前収録した動画を当日流していただく形での参加となっています。

今回の記事のタイトルでLTを行いましたが、時間が限られており、内容をカットした部分もあるため、以下で内容を補足させていただきます。

LT資料

LTで使用した資料は下記にアップしていますので、まずはこちらをご参照ください。

PADに用意されている標準のExcel関連のアクション

PADには標準でExcelを操作するためのアクションが多数用意されており、ある程度の処理はできるようになっています。

ただし、これら標準のアクションだけでは足りない部分もあり、“例えば選択したセル範囲の内容をクリアする”といった処理も、セル選択まではできるのですが、肝心のクリア処理のアクションは用意されていません。

そのため、通常であれば下記動画のようにマウスやキーボード操作によって処理を行うことになるのですが、どうしても安定性に欠けてしまいます。

Excelのコマンドを実行するためのスクリプト

そこでオススメするのがスクリプトによってExcelのコマンドを実行する方法です。
PADにはスクリプトを実行するためのアクションが標準で用意されており、例えば「VBScript の実行」アクションで下記スクリプトを実行すると、起動中のExcelで『すべてクリア』コマンドを実行することができます。

GetObject(, "Excel.Application").CommandBars.ExecuteMso "ClearAll"

上記スクリプトでは、

  1. 起動中のExcelを取得(GetObject(, “Excel.Application”))
  2. IDで指定したコマンド(『すべてクリア』コマンドのID:ClearAll)を実行(CommandBars.ExecuteMsoメソッド)

といった処理をたった1行のコードで行っています。
ただし、Excelが複数起動した状態では、対象となるExcelでコマンドが実行されるかどうかは不確実であるため、その場合は下記コードのようにExcelファイルのパスを指定することで安定して処理を行うことができます。

GetObject("C:\Test\SampleBook.xlsx").Application.CommandBars.ExecuteMso "ClearAll"

※上記コードではGetObject関数の第1引数でファイルパスを指定することでWorkbookオブジェクトを取得し、Applicationプロパティから取得したExcel.Applicationオブジェクト経由でコマンドを実行しています。

コマンドIDの取得方法

ExecuteMsoメソッドで指定するコマンドID(コントロールID)を取得する最も簡単な方法は“クイック アクセス ツール バーのカスタマイズ画面でポップアップヒントを見る”ことです。

ただしIDを手入力することになるので、Microsoftが公開しているリスト(Excelファイル)からコピーした方が確実です。

クイック アクセス ツール バーのカスタマイズと上記リスト、両方を参照することをオススメします。

上記の通り、今回の記事ではIDを指定して任意のExcelのコマンドを実行するスクリプトを紹介しました。

VBAやVBScriptに詳しい人であれば、すべての処理をマクロやスクリプトで書くことも容易ですが、ローコードサービスであるPADの特性を活かすことを考えるのであれば、標準で用意されていない部分のみをスクリプトで処理することによって、将来的にその処理がアクションとして実装された際、簡単に処理を置き換えられるメリットがあります。

標準機能とスクリプトを上手く組み合わせることで、可読性が高く安定したフローを作れるようになるかと思います。

【ポケモンSV】パルデア図鑑が完成しました。前のページ

2022年12月の人気記事次のページ

関連記事

  1. Office アドイン

    Excel向けPower BI カスタム ビジュアル機能の紹介

    Power BI ブログの記事「Excel announces new…

  2. Excel

    ドラッグ&ドロップしたOfficeファイルをPDFに変換するVBScript

    複数のExcelファイルをPDFに一括変換する必要があったので、簡単な…

  3. Office アドイン

    [Officeアドイン]ワークシートで選択範囲を変更したときに発生するイベント

    ワークシート上で選択範囲の変更を検知する際、VBAでは通常「Works…

  4. Office関連

    指定したセル範囲をUTF-8やEUC-JP等のテキストファイルとして出力するExcelアドイン

    以前この記事で、指定したセル範囲をUTF-8やEUC-JP等のテキスト…

  5. Power Automate for desktop

    無料で学ぶPower Automate Desktop

    下記記事にある通り、2021年の3月からPower Automate …

  6. Office関連

    「Excel VBAでラクラク Win64 APIプログラミング」(大村あつし著)レビュー

    当ブログでも以前書評を書いた「Excel VBAの神様 ボクの人生を変…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

Translate

最近の記事

アーカイブ

PAGE TOP