Power Automate for desktop

[Power Automate for desktop]Excelでセルを結合する方法

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)を調べる方法については下記記事で解説しています。

関連Webサイト

2022年10月の人気記事前のページ

[Google Apps Script]Utilities.parseDateメソッドで文字列から日付に変換する次のページ

関連記事

  1. Office関連

    PowerShellからClosedXMLを使ってExcelファイルを作成する方法

    以前C#からClosedXMLを使ってExcelファイルを操作する方法…

  2. Office関連

    アクティブなIEのタブを閉じるVBAマクロ

    「VBA アクティブ IE タブ 閉じる」といったキーワード検索でのア…

  3. Office関連

    Google TTSで文字列を読み上げるExcelアドイン

    前回の記事で書いたGoogle TTSで文字列を読み上げるマクロ(言語…

  4. Office関連

    Internet Explorerのタブを切り替えるVBAマクロ

    前回の記事でInternet Explorerを操作するVBAマクロを…

  5. Excel

    ランダムな文字列を生成するVBAマクロ

    文字数を指定して0-9,A-Zまでのランダムな文字列を生成するマクロで…

  6. Windows 10

    【2017年1月版】Microsoft Edgeを操作するVBAマクロ(DOM編)

    2021/10/1 追記:本記事は公開されてから大分時間が経ってお…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP