【Excel/VBA】Outlookを利用して会議依頼メールを送信する

VBAから
 ・Outlookの会議依頼メールを送信
できます!

PR

前提

VBAからOutlookの会議依頼メールを送信するためには、以下が必要です。

VBAからOutlookの会議依頼メールを送信するために必要なこと
  • Outlookがインストール済みであること。

  • アカウント設定等も実施済みで、メールの送信が可能な状態であること。

Outlookを起動させておく必要はありません。
※もちろん起動していても問題ありません。

PR

VBAコード

ここでは例として、以下を設定した会議依頼メールを送信します。

No.項目設定値
1参加者(必須)hogehoge@gmail.com
2参加者(任意)piyopiyo@gmail.com
3件名XXXXの件について
4場所第1会議室
5開始時刻2021/3/2 9:00
6終了時刻2021/3/2 18:00
7終日のチェック有無無し:False
8返信依頼の有無あり:True
9公開方法空き時間 :0
10アラームあり/無しあり:Trueで15分
11本文任意のメッセージ
12添付ファイル会議資料.txt
会議依頼メールの設定内容


添付用のファイル「会議資料.txt」をデスクトップ上に作成します。

添付ファイル
Option Explicit

Sub sample()
    
    Dim objApp As Object
    Dim objAppt As Object
    Dim objAttendee As Object
    
    Set objApp = CreateObject("Outlook.Application")
    Set objAppt = objApp.CreateItem(1)
    
    With objAppt
        '種類
        '┗会議依頼メール          :1
        '┗会議キャンセル通知メール:5
        .MeetingStatus = 1
        '参加者(必須)
        Set objAttendee = .Recipients.Add("hogehoge@gmail.com")
        objAttendee.Type = 1
        '参加者(任意)
        Set objAttendee = .Recipients.Add("piyopiyo@gmail.com")
        objAttendee.Type = 2
        '件名
        .Subject = "XXXXの件について"
        '場所
        .Location = "第1会議室"
        '開始時刻
        .start = "2021/3/2 9:00"
        '終了時刻
        .End = "2021/3/2 18:00"
        '終日のチェック有無
        '┗あり:True
        '┗無し:False
        .allDayEvent = False
        '返信依頼の有無
        '┗あり:True
        '┗無し:False
        .ResponseRequested = True
        '公開方法
        '┗空き時間        :0
        '┗仮の予定        :1
        '┗予定あり        :2
        '┗外出中         :3
        '┗他の場所で作業中:4
        .BusyStatus = 0
        'アラームあり
        '┗15分:15
        '┗30分:30
        '┗60分:60
        .ReminderSet = True
        .ReminderMinutesBeforeStart = 15
        '本文
        .Body = "各位" & vbCrLf & vbCrLf & "お忙しい中恐れ入りますが、よろしくお願い致します。"
        '添付ファイル
        .Attachments.Add "C:\Users\user\Desktop\会議資料.txt"
        '送信
        .Send
        '表示
        '.Display
    End With
    
    '会議依頼メール送信完了メッセージ
    MsgBox ("会議依頼メールを送信しました!")
    
    '後片付け
    Set objApp = Nothing
    Set objAppt = Nothing
    Set objAttendee = Nothing
    
End Sub

「objApp.CreateItem(1)」によって、「AppointmentItemオブジェクト」を取得します(10行目)。

「AppointmentItemオブジェクト」の各プロパティに、各種設定をします(16~55行目)。
※「参加者(必須)」や「件名」など。

「AppointmentItemオブジェクト」の「Send」メソッドにより、送信が実行されます(57行目)。
※「Send」を「display」へ変更すると、送信されずに表示されます。

PR

実行結果

●会議依頼メールを送信できました。

会議依頼メール送信完了メッセージ
会議依頼メール送信完了メッセージ


●Outlookのスケジュールに登録されていることも確認できました。

Outlookに登録されたスケジュール
Outlookに登録されたスケジュール


●会議依頼メールの内容が、設定した通りであることも確認できました。

Outlookに登録された会議依頼の内容①
Outlookに登録された会議依頼の内容①
Outlookに登録された会議依頼の内容②
Outlookに登録された会議依頼の内容②

「差出人」は自動で設定されます。

PR

参考①

Excel VBAから普通のメールを送信する方法については、以下の記事をご確認ください。

PR

参考②

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「AppointmentItemオブジェクト」の各プロパティ、「Send」メソッド等