2022年11月時点のPower Automate for desktop(PAD)のバージョン(2.25)では標準でExcelのセルを結合するためのアクションが用意されていません。
そこで今回はPADのExcel関連のアクションと簡単なスクリプトを組み合わせることでセルの結合を行う方法をご紹介します。
Excelでセルを結合するフロー
フロー全体
1. 変数の設定
対象となるExcelファイルのパスを変数(%WorkbookPath%)として設定します。
2. Excel の起動
「ドキュメント パス」でファイルパスを指定してExcel起動時にファイルを開きます。
3. Excel ワークシート内のセルを選択
結合するセルを選択します。下記例ではB2~D4セルを指定しています。
必要に応じて、事前に「アクティブな Excel ワークシートの設定」アクションで対象シートを選択すると良いでしょう。
4. VBScript の実行
「VBScript の実行」アクションで下記スクリプトを実行し、選択したセルを結合します。
下記スクリプトではGetObject関数でExcelファイルのパスを指定してWorkbookオブジェクトを取得し、(CommandBars).ExecuteMsoメソッドでセルの結合コマンドを実行しています。また、DisplayAlertsプロパティを指定することで、入力済みのセル結合時に表示されるメッセージを非表示にしています。
With GetObject("%WorkbookPath%").Application .DisplayAlerts = False .CommandBars.ExecuteMso "MergeCells" .DisplayAlerts = True End With
実行画面
「キーの送信」アクションでショートカットキーやアクセスキー(セルの結合の場合は Alt → H → M → M)を送信することでも処理できますが、上記のようにスクリプト、あるいはマクロを使用した方が安定性が高くなります。
また、すべてをスクリプトやマクロで処理するのではなく、標準アクションとして用意されていない部分のみ処理することで、将来的に対象となる処理がアクションとして実装された場合、簡単に置き換えることができるようになります。
スクリプトやマクロの知識が必要となりますが、下記1行のコードでExcelで用意されている任意のコマンドを実行できることを覚えておくだけでも処理の幅は広がるでしょう。
GetObject("%WorkbookPath%").Application.CommandBars.ExecuteMso "(実行したいコマンドのID)"
コマンドのID(コントロールID)を調べる方法については下記記事で解説しています。
この記事へのコメントはありません。