Power Automate for desktop

[Power Automate for desktop]マクロなしブックでマクロを実行する方法

先日書いた下記記事で、Power Automate for desktop(PAD)の「Excel の起動」アクションで単一のプロセス下で複数のブックが開けるようになったことを紹介しました。

これにより、マクロなしブック(xlsx)でもマクロが含まれるファイル(xlsm)と同時に開くことで簡単にマクロで処理を行えるようになったので具体例をご紹介します。

マクロなしブックでマクロを実行するフロー

フロー全体

実行するマクロ

実行するマクロは下記の通りで、ブック名とシート名を引数として、指定したシート上のテーブルからグラフを作成する簡単なマクロです。

Private Sub SampleMacro(ByVal BookName As String, ByVal SheetName As String)
  Dim ws As Excel.Worksheet
  
  On Error Resume Next
  Set ws = Workbooks(BookName).Worksheets(SheetName)
  On Error GoTo 0
  If Not ws Is Nothing Then
    '指定したシート上のテーブルからグラフ追加
    With ws.Shapes.AddChart2(-1, xlColumnClustered).Chart
      .SetSourceData ws.ListObjects(1).Range
    End With
  End If
End Sub

このマクロを「MacroBook.xlsm」ファイルとして適当なフォルダに保存します。

1. 変数の設定

マクロが入っているファイル(MacroBook.xlsm)と処理対象となるファイル(Data.xlsx)のパスを変数として設定します。

2. ファイル パス部分の取得

マクロの実行にファイル名が必要になるので「ファイル パス部分の取得」アクションで変数(マクロファイル名:%MacroFileName%、処理対象ファイル名:%BookFileName%)として取得します。

3. Excel の起動

「Excel の起動」アクションでファイルを開きます。
このとき「詳細」から「新しい Excel プロセスの配下にネストする」オプションをオフにしておきます(マクロ用インスタンス:%MacroInstance%、処理対象インスタンス:%BookInstance%)。

4. Excel マクロの実行

処理対象インスタンス(%BookInstance%)でマクロを実行します。
マクロパラメーターでは下記のように「(ファイル名)!(マクロ名)」として実行するマクロを指定し、引数は「;」で区切って渡します。

'%MacroFileName%'!SampleMacro;%BookFileName%;Sheet1

5. Excel を閉じる

Excelを閉じます。
処理対象のファイルは「Excel を閉じる前」パラメーターで「ドキュメントを保存」を指定し、ファイルを保存しておきます。

実行画面

新しい Excel プロセスの配下にネストする」オプションのオン・オフによって、新規プロセスとしてExcelファイルを処理するかどうかを選べるようになったので、他ブックのマクロで処理を行いたい場合はオフにして単一プロセスで処理する、というように必要に応じて使い分けていくと良いでしょう。

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

Yahoo!路線情報でRPAによる自動操作やスクレイピングが認められているかを調べてみました。次のページ

関連記事

  1. Excel

    Yahoo!翻訳で文字列を翻訳するマクロ

    「Google翻訳で文字列を翻訳するマクロ」ではGoogle翻訳を利用…

  2. Office関連

    PowerShellからNetOfficeを使ってExcelを操作する方法

    先日、Excel MVPの伊藤さんがPowerShellからExcel…

  3. Excel

    既存の機能の代わりにマクロを実行する方法をまとめてみました。

    「既存の機能の代わりにマクロを実行する」の関連になりますが、Offic…

  4. Office関連

    「入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術」レビュー

    久しぶりにVBA参考書籍のレビューです。今回は沢内晴彦氏が執筆され…

  5. Office関連

    Office クリップボードをマクロで操作する(UI Automation)

    以前MSAAを利用してOffice クリップボードを操作するマクロを書…

  6. Office関連

    新しくなったMZ-Tools

    みなさんは「MZ-Tools」というツールをご存知でしょうか?…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP