OUTLOOK VBA アラームと同時に自動でマクロ実行
タイトルのマクロは、以下です。標準モジュールでなく、「ThisOutlookSession」に入れてください。
Private Sub Application_Reminder(ByVal objItem As Object)
Dim strItemSubject As String
' 予定アイテムの件名を指定します。
strItemSubject = "予定"
' 予定アイテムの件名とアイテムのオブジェクトクラスが”olAppointment”(26番)だった場合の条件を設定します。
If objItem.Subject = strItemSubject And objItem.Class = 26 Then
' 起動したいプロシージャを指定します。
Call CreateNewMail
End If
End Sub
Sub CreateNewMail()
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
' Outlookアプリケーションのインスタンスを取得
Set olApp = Outlook.Application
' 新しいメールアイテムを作成
Set olMail = olApp.CreateItem(olMailItem)
' メールのプロパティを設定
With olMail
.Subject = "テスト件名"
.Body = "テスト件名の内容です。"
.To = "example@example.com"
.Display ' メールを表示
End With
' オブジェクトの解放
Set olMail = Nothing
Set olApp = Nothing
End Subコード全体の概要
このコードは、Outlookのリマインダーがトリガーされたときに、特定の件名を持つ予定アイテムに対して新しいメールを自動的に作成するものです。
各部分の説明
Private Sub Application_Reminder(ByVal objItem As Object)
- 概要: Outlookのリマインダーイベントが発生したときに実行されるサブルーチン。
- 引数:
objItem: リマインダーがトリガーされた予定アイテムオブジェクト。
内容
Dim strItemSubject As String:- 文字列型変数
strItemSubjectを宣言。
- 文字列型変数
strItemSubject = "予定":strItemSubjectに特定の件名(この場合は「予定」)を代入。
If objItem.Subject = strItemSubject And objItem.Class = 26 Then:- 予定アイテムの件名が
strItemSubjectと一致し、かつオブジェクトクラスが26(予定アイテムを示す)である場合に以下の処理を実行。
- 予定アイテムの件名が
Call CreateNewMail:- 条件が満たされた場合、
CreateNewMailプロシージャを呼び出して新しいメールを作成。
- 条件が満たされた場合、
End Sub
Application_Reminderサブルーチンの終了を示す。
Sub CreateNewMail()
- 概要: 新しいメールを作成して表示するサブルーチン。
内容
Dim olApp As Outlook.Application:- Outlookアプリケーションオブジェクトを宣言。
Dim olMail As Outlook.MailItem:- メールアイテムオブジェクトを宣言。
Set olApp = Outlook.Application:- 現在のOutlookアプリケーションのインスタンスを取得し、
olAppに代入。
- 現在のOutlookアプリケーションのインスタンスを取得し、
Set olMail = olApp.CreateItem(olMailItem):- 新しいメールアイテムを作成し、
olMailに代入。
- 新しいメールアイテムを作成し、
With olMail:- 新しいメールアイテムのプロパティを設定するブロックを開始。
.Subject = "テスト件名":- メールの件名を「テスト件名」に設定。
.Body = "テスト件名の内容です。":- メールの本文を「テスト件名の内容です。」に設定。
.To = "example@example.com":- メールの宛先を
example@example.comに設定。
- メールの宛先を
.Display:- メールを表示。
End With:Withブロックの終了。
Set olMail = Nothing:olMailオブジェクトを解放。
Set olApp = Nothing:olAppオブジェクトを解放。
End Sub
CreateNewMailサブルーチンの終了を示す。
補足説明
- リマインダーイベントのトリガー: Outlookのリマインダーがトリガーされると、
Application_Reminderイベントが発生し、このサブルーチンが実行されます。 - プロシージャの呼び出し: 指定した条件(件名が「予定」かつオブジェクトクラスが
26)が満たされると、CreateNewMailプロシージャが呼び出され、新しいメールが作成されて表示されます。
オブジェクトクラスの詳細
OlObjectClass 列挙 (Outlook) オブジェクトクラスの詳細
https://docs.microsoft.com/ja-jp/office/vba/api/outlook.olobjectclass


