Power Automate Desktop(以下:PAD)からOutlookマクロを実行する場合、専用のアクションが用意されていないため少し工夫する必要がありました。
この記事では、「アプリケーションの実行」アクションを使ってOutlookマクロを実行する方法について解説してみます!
今回紹介する方法には、下記の条件があります。
条件
- 引数を受け取るマクロは実行できません。
- イベントトリガー式のマクロは実行できません。
- ThisOutlookSessionに記述されているマクロは実行できません。こちらに記述されているマクロを実行する場合は、標準モジュールに書き直してください。標準モジュールの挿入方法は手順の中で解説しています。ThisOutlookSessionに記述されているイベントトリガー式マクロは標準モジュールに移動することができませんので注意してください。
ThisOutlookSessionは、基本的にはイベントトリガー式のマクロを記述する場所なので、ここに書いてあるマクロは実行できないので気をつけてくださいね!
Outlook VBA マクロの作成方法
PADでフローを作成する前に、テスト用のOutlookマクロを準備していきます!
VBEが開きます。(VBA用のエディタ)
標準モジュールを追加します。既に標準モジュールが存在する場合は追加する必要はありません。
▲プロジェクトウインドウの中で右クリックします。
▲「挿入」>「標準モジュール」をクリックします。
▲新しい標準モジュールが追加されます。私の環境には標準モジュールが何もなかったのでModule1
が作成されました。標準モジュールが既に存在した場合は、Module2、Module3という名前になる場合がありますが問題はありません。
Public Sub test() MsgBox ("hello.this is test sub.") End Sub
▲先程追加したModule1を選択してマクロを記述します。今回は上記のサンプルマクロを使用します。メッセージボックスを表示するだけの簡単なマクロです。(Public句は無くても動作します。)
▲保存アイコンをクリックしてマクロを保存しましょう。
▲これでマクロの準備はおわりです。Outlookを閉じてください。Outlookを閉じるときに図のようなメッセージが表示されたらマクロが保存されていなかったということなので「はい」をクリックしてきちんと保存してくださいね。
Power Automate Desktopのフローの作成方法
「アプリケーションの実行」 アクションを使ってフローを作ります!
「アプリケーションの実行」 アクション は、「ファイル名を指定して実行」と同じことができるアクションです!
「アプリケーションの実行」アクション の追加
PADを使用したことがない方は、下記の記事で基本的な使い方を紹介していますのでご覧ください。
▲左側アクションメニューの中から「システム」>「アプリケーションの実行」をクリックします。
▲パラメータを入力します。↓下記を参考にしてください。
- アプリケーションパス
- Outlookのパスです。多くの場合
Outlook
と入力すれば問題ありません。うまくいかない場合は、フォルダを含めたフルパスで指定します。フルパスの調べ方は後述します。
- Outlookのパスです。多くの場合
- コマンドライン引数
/autorun "MACRO_NAME"
- MACRO_NAMEはマクロ名に置き換えてください。私は上で紹介したtest()というマクロを実行しますので
/autorun "test”
とします。
- 作業フォルダ―
- コマンドラインで操作するときのcd(カレントディレクトリ)にあたる設定です。どこのディレクトリでOutlookを実行するかという指定になります。空白にするとエラーは起きませんがマクロが上手く実行できませんでしたので適当に
C:\Users\user\Desktop
とデスクトップフォルダにしておきます。「ちょっと何言っているかわからない。」という方もデスクトップなど適当なフォルダ名をフルパスで入力してください。
- コマンドラインで操作するときのcd(カレントディレクトリ)にあたる設定です。どこのディレクトリでOutlookを実行するかという指定になります。空白にするとエラーは起きませんがマクロが上手く実行できませんでしたので適当に
その他のパラメータは今回はデフォルトのままとします。
もしかしたら、「アプリケーションを起動後」のパラメータは、「読み込むまで待機」にした方が安定するのかもしれません。
Outlookのフルパスの調べ方!
▲デスクトップ画面左下ウインドウズメニューをクリックします。
▲Outlookアイコンのところで右クリックします。
▲「その他」>「ファイル名の場所を開く」をクリックします。
▲Outlookファイルが保存されているフォルダが開きましたら、OutlookアイコンのところでShiftキーを押しながら右クリックします。
▲パスのコピーをクリックします。これでクリップボードにOutlookのフルパスがコピーされました。PADに戻り、アプリケーションパスのところにコピーしたフルパスを張り付けてください。ダブルクォーテーションは付けたままでOKです。
▲上図のように入力しました。画面右下の保存をクリックして閉じます。以上でフローは完成です。
▲フロー実行ボタンを押してフローを実行します。
▲マクロによりOutlookが起動し、メッセージボックスが表示されました。マクロが正常に動作したようです!
▲PADで設定した内容と同じことを「ファイル名を指定して実行」にて行う場合、図のようにします。
正常に動作しないときはこちらを確認してください。
正常に動作しない場合は、下記を確認してみてください。
- Outlookがそもそも開かない。
-
マクロが実行できなかったり、マクロ名の記述ミスをしていてもOutlookは開くはずなので、アプリケーションパスに指定しているOutlookのパスが間違っている可能性が高いです。
- Outlookは開くけど、マクロが動かない。
-
クラスモジュールやThisOutlookSessionモジュールにマクロを記述している場合は、標準モジュールに書き直してください。イベントトリガー式のマクロは実行できません。
モジュール内、あるいはモジュール間で同じ名前のマクロが存在していないか確認してください。たとえばModule1にtestマクロがあり、ThisOutlookSessionにもtestマクロが存在する場合、どちらも実行することができません。どちらかを改名して一意の名前にしてください。
上記以外にも、マクロの内容によってPADから実行できるもの、実行できないものがあるかもしれません!
補足
- コマンドライン引数に/altvba otmfilenameと指定する方法は、「有効なコマンドライン引数ではありません」というエラーが表示されてうまくいきませんでした。
- マクロに引数を渡す方法はわかりませんでした。
どなたか分かりましたら教えてください!
関連記事
まとめ
Power Automate for desktopからOutlookマクロを呼び出す方法について解説しました。
このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!
Power Automate学習教材
▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。
▲Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。
▲Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。
Microsoft 365/ Power Automate / Power Platform / Google Apps Script…
▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。