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. Office関連

    Gmail APIを使ってメール送信するVBAマクロ(2)

    前回の記事でGmail APIを使ってメールを送信するVBAマクロを紹…

  2. Office関連

    Excelのアイデア機能でグラフやピボットグラフを一発作成

    Insider版のExcelに「アイデア」機能が追加されました。…

  3. Office関連

    RSSの日付を変換するVBAマクロ

    RSSから取得した日付(「Wed, 20 Dec 2017 00:02…

  4. Power Automate for desktop

    Power Automate for desktopのアクション一覧

    Power Automate for desktopのアクションペイン…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

最近の記事

アーカイブ

PAGE TOP