Power Automateを動画で学ぼう!Udemyキャンペーン中

Power Automate DesktopからOutlookマクロを起動する方法!

じょじお

Power Automate Desktop(以下:PAD)からOutlookマクロを実行する場合、専用のアクションが用意されていないため少し工夫する必要がありました。

ぽこがみさま

この記事では、「アプリケーションの実行」アクションを使ってOutlookマクロを実行する方法について解説してみます!

目次

前提

今回紹介する方法には、下記の条件があります。

  • 引数を受け取るマクロは実行できません。
  • イベントトリガー式のマクロは実行できません
  • ThisOutlookSessionに記述されているマクロは実行できません。こちらに記述されているマクロを実行する場合は、標準モジュールに書き直してください。標準モジュールの挿入方法は手順の中で解説しています。ThisOutlookSessionに記述されているイベントトリガー式マクロは標準モジュールに移動することができませんので注意してください。
ぽこがみさま

ThisOutlookSessionは、基本的にはイベントトリガー式のマクロを記述する場所なので、ここに書いてあるマクロは実行できないので気をつけてくださいね!

Outlook VBA マクロの作成方法

じょじお

PADでフローを作成する前に、テスト用のOutlookマクロを準備していきます!

STEP
Outlookを開いてAlt+F11キーを押しVBEを開きます。
Outlook VBA

VBEが開きます。(VBA用のエディタ)

STEP
VBE左上のプロジェクトウインドウの中で右クリックします。

標準モジュールを追加します。既に標準モジュールが存在する場合は追加する必要はありません

Outlook VBA

▲プロジェクトウインドウの中で右クリックします。

Outlook VBA

▲「挿入」>「標準モジュール」をクリックします。

Outlook VBA

▲新しい標準モジュールが追加されます。私の環境には標準モジュールが何もなかったのでModule1が作成されました。標準モジュールが既に存在した場合は、Module2、Module3という名前になる場合がありますが問題はありません。

STEP
テスト用のマクロをVBAで記述します。
Public Sub test()
    MsgBox ("hello.this is test sub.")
End Sub

▲先程追加したModule1を選択してマクロを記述します。今回は上記のサンプルマクロを使用します。メッセージボックスを表示するだけの簡単なマクロです。(Public句は無くても動作します。)

VbE

▲保存アイコンをクリックしてマクロを保存しましょう。

VBE

▲これでマクロの準備はおわりです。Outlookを閉じてください。Outlookを閉じるときに図のようなメッセージが表示されたらマクロが保存されていなかったということなので「はい」をクリックしてきちんと保存してくださいね。

Power Automate Desktopのフローの作成方法

ぽこがみさま

「アプリケーションの実行」 アクションを使ってフローを作ります!

じょじお

「アプリケーションの実行」 アクション は、「ファイル名を指定して実行」と同じことができるアクションです!

「アプリケーションの実行」アクション の追加

STEP
PADを開きます。

PADを使用したことがない方は、下記の記事で基本的な使い方を紹介していますのでご覧ください。

STEP
「アプリケーションの実行」アクションを追加します。
アプリケーションの実行アクション

▲左側アクションメニューの中から「システム」>「アプリケーションの実行」をクリックします。

STEP
アプリケーションの実行アクションのパラメータを設定します。
アプリケーションの実行アクション

▲パラメータを入力します。↓下記を参考にしてください。

  • アプリケーションパス
    • Outlookのパスです。多くの場合Outlookと入力すれば問題ありません。うまくいかない場合は、フォルダを含めたフルパスで指定します。フルパスの調べ方は後述します。
  • コマンドライン引数
    • /autorun "MACRO_NAME"
    • MACRO_NAMEはマクロ名に置き換えてください。私は上で紹介したtest()というマクロを実行しますので/autorun "test”とします。
  • 作業フォルダ―
    • コマンドラインで操作するときのcd(カレントディレクトリ)にあたる設定です。どこのディレクトリでOutlookを実行するかという指定になります。空白にするとエラーは起きませんがマクロが上手く実行できませんでしたので適当にC:\Users\user\Desktopとデスクトップフォルダにしておきます。「ちょっと何言っているかわからない。」という方もデスクトップなど適当なフォルダ名をフルパスで入力してください。

その他のパラメータは今回はデフォルトのままとします。

じょじお

もしかしたら、「アプリケーションを起動後」のパラメータは、「読み込むまで待機」にした方が安定するのかもしれません。

Outlookのフルパスの調べ方!

Outlookのフルパスの調べ方
ウインドウズメニュー

▲デスクトップ画面左下ウインドウズメニューをクリックします。

Outlook

▲Outlookアイコンのところで右クリックします。

パスのコピー

▲「その他」>「ファイル名の場所を開く」をクリックします。

Outlook

▲Outlookファイルが保存されているフォルダが開きましたら、OutlookアイコンのところでShiftキーを押しながら右クリックします。

パスのコピー

▲パスのコピーをクリックします。これでクリップボードにOutlookのフルパスがコピーされました。PADに戻り、アプリケーションパスのところにコピーしたフルパスを張り付けてください。ダブルクォーテーションは付けたままでOKです。

アプリケーションパスの例:
“C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE”

STEP
アプリケーションの実行アクションを保存します。
Power Automate Desktopアプリケーションの実行アクション

▲上図のように入力しました。画面右下の保存をクリックして閉じます。以上でフローは完成です。

STEP
フローを実行します。
Power Automate Desktopふろーの実行

▲フロー実行ボタンを押してフローを実行します。

Outlookマクロ

▲マクロによりOutlookが起動し、メッセージボックスが表示されました。マクロが正常に動作したようです!

今回作成したフローは「ファイル名を指定して実行」と同じことしてます。
ファイル名を指定して実行
ファイル名を指定して実行

▲PADで設定した内容と同じことを「ファイル名を指定して実行」にて行う場合、図のようにします。

正常に動作しないときはこちらを確認してください。

じょじお

正常に動作しない場合は、下記を確認してみてください。

Outlookがそもそも開かない。

マクロが実行できなかったり、マクロ名の記述ミスをしていてもOutlookは開くはずなので、アプリケーションパスに指定しているOutlookのパスが間違っている可能性が高いです。

Outlookは開くけど、マクロが動かない。

クラスモジュールやThisOutlookSessionモジュールにマクロを記述している場合は、標準モジュールに書き直してください。イベントトリガー式のマクロは実行できません。

モジュール内、あるいはモジュール間で同じ名前のマクロが存在していないか確認してください。たとえばModule1にtestマクロがあり、ThisOutlookSessionにもtestマクロが存在する場合、どちらも実行することができません。どちらかを改名して一意の名前にしてください。

上記以外にも、マクロの内容によってPADから実行できるもの、実行できないものがあるかもしれません!

補足

  • コマンドライン引数に/altvba otmfilenameと指定する方法は、「有効なコマンドライン引数ではありません」というエラーが表示されてうまくいきませんでした。
  • マクロに引数を渡す方法はわかりませんでした。

どなたかは分かりましたら教えてください!

さいごに

じょじお

当サイトではPower Automate DesktopなどのRPA技術解説をノンプログラマー向けに行っています。Twitterで更新情報を呟いているのでよろしければフォローお願い致します!

Power Automate Desktopおすすめ入門教材です。

▼いまのところ唯一の日本語書籍 Power Automate Desktop入門書です

▼動画で学びたい方はこちらのオールインワンで学べる講座がおすすめです。

ノンプログラマーでも自動化スキルを身につける。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
目次
閉じる