Power Automate for desktop

Power Automate for desktopで安定してフローを実行するためのちょっとしたTips

※本記事は@otoan_uさんの記事に続く「RPA Community Advent Calendar 2021」11日目の記事となります。
※ 本記事は2021年12月時点での情報を元にしています。今後のアップデートにより仕様が変更される可能性がある点はご注意ください。

先月オンラインで開催された「Power Automate Desktop勉強会 vol.4」で本記事と同タイトルでLTさせていただいたので今回はその補足的な説明をしていきます。
(RPACommunityではなくPADjpコミュニティの話となってしまいますが、一応RPA関連ということで)

LT概要

Power Automate for desktop(PAD)では、標準のアクションとして用意されていないアプリケーションを操作する際、多くの場合はマウス操作やキー送信、UI オートメーションを使うことになりますが、Word文書をPDFに変換するフローを例に、安定してフローを実行するための一つの方法として「コマンドラインオプション」を利用する方法があることをご紹介しました。

勉強会の動画

勉強会の動画がYouTubeにアップされていますので、LTがどのような内容だったのかは下記動画をご視聴ください。

WordファイルをPDFに変換するフロー(UI操作)

PADにはExcelやOutlookを操作するためのアクションは用意されていますが、それ以外のOfficeアプリケーション用のアクションは用意されておらず、例えばWordでファイルを開いてPDFに変換する処理を自動化する場合は下図のようなフローになります。

上記フローでは下記のような操作を行っています。

  1. Wordを起動する。
  2. 「ファイル」タブをクリックし、「開く」ボタンをクリックする。
  3. 「参照」ボタンをクリックし、ファイル選択ダイアログで対象ファイルのパスを指定してファイルを開く。
  4. Wordファイルが開かれたら「ファイル」タブをクリックし、「エクスポート」ボタンをクリックする。
  5. 「PDF/XPS の作成」ボタンをクリックし、ファイル選択ダイアログでPDFの出力先を指定する。
  6. 「発行」ボタンをクリックしてPDFを出力する。
  7. 作成されたPDFを表示する。

手作業での処理をそのままフローに置き換えた形で、UIの操作を行っているためアクション数も多く安定性にはやや欠けます。

WordファイルをPDFに変換するフロー(スクリプト)

一方、PADにはスクリプトを実行するアクションが用意されているため、“WordファイルをPDFに変換するスクリプト”を組み込むこともできます。

'※ WordファイルをPDFファイルに変換するスクリプト
'※ PDF出力後にファイルを開く
Option Explicit
 
Const TargetFilePath = "%WordFilePath%"
Const OutputFilePath = "%PDFFilePath%"
Const wdExportFormatPDF = 17
Const wdExportOptimizeForPrint = 0
Const wdExportAllDocument = 0
Const wdExportDocumentContent = 0
Const wdExportCreateWordBookmarks = 2
Const wdDoNotSaveChanges = 0
 
With CreateObject("Word.Application")
  .Visible = True
  With .Documents.Open(TargetFilePath)
    .ExportAsFixedFormat OutputFilePath, wdExportFormatPDF, True, wdExportOptimizeForPrint, wdExportAllDocument, , , _
      wdExportDocumentContent, False, False, wdExportCreateWordBookmarks, True, True, False
    .Close wdDoNotSaveChanges
  End With
  .Quit
End With

UI操作に比べて非常にシンプルで、Wordの操作をスクリプトで行っているため安定性も高くなっていますが、プログラミングの知識が必須となるため作成・管理できる人材が限定されるといった、保守・運用・管理面では課題があると言えるでしょう。

WordファイルをPDFに変換するフロー(コマンドラインオプション)

そこで、スクリプトを組まなくてもUI操作よりも安定して処理を行うための一つの方法として「コマンドラインオプション」(コマンドライン引数、コマンドラインスイッチ)をご紹介します。

コマンドラインオプションを指定してアプリケーションを実行することで様々な処理を行うことができ、PADでは「アプリケーションの実行」アクションの「コマンド ライン引数」で設定できます。

どのようなオプションが用意されているかは対象となるアプリケーション次第ですが、Wordを含めたOffice製品のオプションは下記サイトでまとめられています。

中でもWordで指定したマクロを実行するための「/mmacroname」オプションは優れもので、標準で備わっている「コマンドマクロ」も実行することができます。

どのようなコマンドマクロがあるのかはマクロダイアログから確認できますが、私の方で一覧としてまとめてみました。

すべてのコマンドマクロが「/mmacroname」オプションで実行できるわけではありませんが、ファイルをPDF形式で出力するための「DocExport」コマンドは実行可能です。

下図のようにWord(WINWORD.exe)に「/mmacroname」オプションと対象ファイルのパスを指定することで、ファイルを開くと同時にPDFの出力先を指定するダイアログが表示されるので、UI操作に比べて必要な処理数が少なくなります。

以上のように、アプリケーションによってはスクリプトを書かなくても動作が不安定になりがちなUI操作を最小限に留めることができますので、PADを使われている方は「コマンドラインオプション」の活用を検討されてはいかがでしょうか。

関連記事


今回の記事はこれで終了です。
RPA Community Advent Calendar 2021、12日目の記事は@hannarirpaさんの下記記事になります。

スプレッドシートをWeb APIにできるサービスを使ってみた前のページ

Power Automate for desktopでSlackにファイルをアップロードする方法次のページ

関連記事

  1. Office関連

    「個人用テンプレートの既定の場所」を設定するWordマクロ

    前回の記事で、Word 2013で個人用テンプレート(カスタム テンプ…

  2. Office関連

    Internet Explorer用OneNoteアドオンを利用して指定したWebページをOneNo…

    「Evernote Webクリッパーで指定したWebページをEvern…

  3. Office関連

    Google翻訳で文字列を翻訳するVBAマクロ(IE操作版)

    下記記事にあるように、ニューラルネット機械翻訳の導入によって、Goog…

  4. Office関連

    JPEG画像の回転情報を変更するVBAマクロ

    mougに「マクロでJPEG画像のExif(Orientation)を…

  5. Power Automate for desktop

    [Power Automate for desktop]URL経由でデスクトップフローを実行する

    2022年6月のアップデートによって、URL経由でPower Auto…

  6. Office関連

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

    前回、前々回とGmail APIを扱ってきましたが、今回は前々回の記事…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP