皆様こんにちは、ノグチです。
以前の記事で、Outlook VBAで予定を登録する方法をご紹介しました。
記事では自分だけの予定を登録していましたが、同じ予定に参加して欲しい人にも予定が送れたら便利ですよね。
ということで今回は、Outook VBAで、予定に自分以外の参加者を追加する方法をご紹介します!
参加者を追加できる会議を作る
冒頭で、「予定に自分以外の参加者を追加する方法」、と言いましたが、実はOutlookの予定には自分以外の参加者を追加することはできません。
予定に自分以外の参加者を追加したい場合は、予定ではなく、会議を使います。
会議は、項目は予定とよく似ていますが、自分以外の参加者に、参加して欲しい予定への招待を送信することができるのです。
名前は会議ですが、もちろん会議以外の予定に使うことができますよ。
MeetingStatusプロパティで予定を会議にする
会議に情報をセットするためには、まずAppointItemオブジェクトのMeetingStatusプロパティを使います。
このMeetingStatusプロパティに定数olMeetingを指定することで、会議を操作することができますよ。
記述方法はこちら。
参加者を操作するRecipientsオブジェクトを取得する
会議を操作できるようになったところで、お次は参加者を追加しましょう。
会議の参加者を操作するためには、Recipientsオブジェクトを取得する必要があります。
Recipientsオブジェクトは、AppointItemオブジェクトのRecipientsプロパティで取得できますよ。
記述方法もシンプルです。
Addメソッドで参加者を追加する
さあ、Recipientsオブジェクトを取得できれば、会議に参加者を追加することができるようになります。
会議に参加者を追加するには、RecipientsオブジェクトのAddメソッドで参加者のメールアドレスや名前を指定します。
こんな感じで。
ここで言う名前とは、Outlookの連絡先に登録されている名前です。
登録されていない名前を指定しても意味がありませんので注意が必要です。
複数の参加者を追加したい場合
複数の参加者を追加したい場合は、各参加者毎にAddメソッドで指定していきます。
こんな感じで。
With objApItem .MeetingStatus = olMeeting .Recipients.Add "参加者1" .Recipients.Add "参加者2" End With
会議を登録するコード
では早速、上でご紹介したMeetingStatusプロパティとRecipientsオブジェクトのAddメソッドで会議を作ってみましょう。
会議のプロパティは、予定とほぼ同じです。
というよりも、会議も予定も同じAppointmentItemオブジェクトなのでプロパティも同じ。
ただMeetingStatusプロパティの有無によって予定なのか会議なのかが決まります。
以前ご紹介した予定登録のコードに、MeetingStatusプロパティとRecipientsプロパティ、Addメソッドを追加して…
するとこんなコードになります。
Sub SendAppointment() Dim objApItem As Outlook.AppointmentItem Set objApItem = Application.CreateItem(olAppointmentItem) With objApItem .MeetingStatus = olMeeting .Recipients.Add "参加者@mail.com" .Subject = "△△会議" .Location = "XXX会議室" .Start = #6/25/2019 2:00:00 PM# .End = #6/25/2019 4:00:00 PM# .Body = "○○プロジェクト会議" .Send End With End Sub
2019年6月25日の午後2時から4時までの会議の参加者に会議招待を送るコードです。
上のコードでは、参加者をメールアドレスで指定しました。
上のコードを実行すると、こんな会議が参加者へ送信されます。
会議への招待を受け取った人は、予定を承諾するなり、別の日程を返信するなりすればOKです。
会議の送信はSendメソッドで
上のコードの一番最後、予定ではSaveメソッドで予定が登録されましたが、会議を参加予定者に送る場合は、Sendメソッドを使います。
予定と同じようにSaveメソッドを使うと、会議は自分の予定表には登録されますが、参加者には送信されませんのでご注意を。
最後に
今回は、Outlookの会議で自分以外の参加者に予定を送信する方法をご紹介しました。
以前ご紹介した、エクセルのワークシート上の一覧から予定を登録する方法を組み合わせれば、例えば各社員の面談や健康診断といった、複数の予定も登録できますよ。
それでは最後までお読みいただきありがとうございました!