VBSからOutlookのVBAのマクロを実行させる方法がわからず 調べてみても、VBSに直接VBAを書くものしかなく
VBSからOutlookのVBAのマクロを実行させる方法がわからず 調べてみても、VBSに直接VBAを書くものしかなく (そちらでやろうと試みましたがどうしてもできず) VBSからOutlookを開き、Outlook内で作成したマクロを実行させるのは どうしたらよいでしょうか ご教示お願いいたします。
Visual Basic・45閲覧
ベストアンサー
VBS でマクロ名まで指定して実行する方法は、残念ながら Outlook では不可能です。Outlook の Application オブジェクトには Run メソッドが用意されていないためです。 https://docs.microsoft.com/ja-jp/office/vba/api/outlook.application 代替え案として、VBS側では OutLook を起動するまでにしておき、マクロの実行は Outlook の起動イベントを利用するという方法はいかがでしょうか? https://tonari-it.com/outlook-vba-applicationstartup/ ' VBS側 - WshShell オブジェクトの Runメソッドを利用した一例 Option Explicit Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") Const strOutlookApp = """C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE""" Const intWindowStyle = 1 ' 通常表示 Dim blnWaitOnReturn blnWaitOnReturn = True ' 同期・非同期の設定 (True = 同期) objWshShell.Run strOutlookApp, intWindowStyle, blnWaitOnReturn Set objWshShell = Nothing ' ------- Outlook側 - ThisOutlookSessionモジュールに記述 --------- Option Explicit Private Sub Application_Startup() MsgBox "Hello!" End Sub
質問者からのお礼コメント
返信が遅くなり申し訳ありません! Outlookはそもそもできないのですね。理解できました。 書いてくださった内容を参考し VBSではOutlookの立ち上げと終了のみだけにし Outlookが起動した際にVBAを実行させる形でうまくできました。 これで休日の日でも実行できます。 ご回答していただきありがとうございました!
お礼日時:1/26 14:49