みなさまこんにちは、ノグチです。
企業に属しておられる方々の中には、メーラーやスケジューラーが会社で指定されていて、「社内のメンバー同士のスケジュールを把握するため、予定は必ずスケジューラーに入れること!」という社内ルールがあるという方もおられるのではないでしょうか。
しかしこの予定を登録するのって、1回1回は大した手間ではないのですが、忙しい時期や部署によっては登録する予定の数が多くなってしまって、ついつい予定登録を後回しにしてしまうことも…
毎週開催される定例会議だけど、週によって開催する曜日や時間が違う…なんていう場合に至っては、予定登録の「繰り返し」機能すら使えず、予定を登録しながらイライラしてしまいます。
もしOutlookの予定表を使っておられるなら、エクセルシートに予定を書いた複数の予定をOutlookの予定に一気に登録できますよ。
これまではエクセルVBAでOutlookを操作する方法をご紹介してきましたが、今回からはOutlook VBAでタスクや予定の登録方法を連載でご紹介していきます。
今回の記事では、ワークシートのリストを纏めてOutlookの予定登録するための第一段階として、VBAでOutlookの予定を登録する方法をご紹介します!
OutlookでもVBAのコーディングができる
OutlookのVBEを開く
これまでご紹介してき記事では、エクセルVBAでOutlookを操作する方法ばかりでした。
でも、実はOutlookでもVBAのコーディングができるんです。
なので今回は、Outlook VBAでコーディングをしてみましょう。
OutlookでVBEを開くには、メニューにある「開発」タブを開いて、見慣れた「Visual Basic」をクリックすれば、いつものVBEの画面が開きます。
メニューに開発タブが見当たらない場合
Outlookのメニューに「開発」タブが見当たらない!という場合は、リボンのユーザー設定を変更すれば表示させられますよ。
メニューから「ファイル」> オプションをクリックして、「リボンのユーザー設定」を開きます。
画面右側にタブ名が並んでいますので、「開発」の左側にあるチェックボックスにチェックを入れて、「OK」をクリックすれば、メニューに「開発」タブが現れます。
あとは、エクセルのVBEと同じように、標準モジュールを挿入すれば…
Outlook VBAで予定を登録する
ではVBEの準備もできたところで、実際に予定を登録するコードを書いていきましょう。
AppointmentItemオブジェクト
まずは予定を操作するオブジェクトが必要ですね。
Outlookの予定は、AppointmentItemオブジェクトで操作します。
AppointmentItemオブジェクトのプロパティ
AppointmentItemオブジェクトのプロパティには、例えば以下のようなものがあります。
プロパティ名 | 内容 |
---|---|
Subject | 件名 |
Location | 場所 |
Start | 予定開始時間 |
End | 予定終了時間 |
Body | 予定の本文 |
ReminderSet | アラームの有無(True/Falseを指定) |
ReminderMinutesBeforeStart | 予定の何分前にアラームを鳴らすか |
AllDayEvents | 終日の予定かどうか(True/Falseを指定) |
Saveメソッドで予定を登録する
AppointmentItemオブジェクトのプロパティで予定の内容を指定できたら、後は保存するだけです。
予定を保存するには、AppointmentItemオブジェクトのSaveメソッドを使います。
記述方法は、MailItemオブジェクトのSaveメソッドの時と同様に、非常に単純です。
VBAで予定を登録する
では早速、AppointmentItemオブジェクトとプロパティ、メソッドでOutlookの予定を登録してみましょう。
まずはAppointmentItem型の変数を宣言します。
そして、Outlookのアイテムのオブジェクトを取得するにはCreateItemメソッドを使用するのでしたね。
CreateItemメソッドのパラメータには、予定を表す olAppointmentItemを指定します。
CreateItemメソッドとパラメータについては下記記事で紹介していますので、こちらをご覧ください。
そしてApointmentItemオブジェクトの各パラメータを指定したコードがこちら。
Sub CreateAppointmentItem() Dim objApItem As Outlook.AppointmentItem Set objApItem = Application.CreateItem(olAppointmentItem) With objApItem .Subject = "△△会議" .Location = "XXX会議室" .Start = #8/1/2018 2:00:00 PM# .End = #8/1/2018 4:00:00 PM# .Body = "○○プロジェクト会議" .ReminderSet = True .ReminderMinutesBeforeStart = 30 .Save End With End Sub
2018年8月1日、午後2時から4時までの会議の予定です。
予定時刻の30分前にアラームを鳴らすように指定しています。
このコードを実行してみると…
最後に
今回は、Outlook VBAでOutlookの予定を登録する方法をご紹介しました。
エクセルのワークシートのデータなどを使わないで、Outlook単体の動作をする処理なら、OutlookのVBAでコーディングすることもできますよ。
次回は、エクセルワークシートに一覧化した予定を、Outlookの予定としてまとめて登録する方法をご紹介していきます。
それでは、最後までお読みいただきありがとうございました!
連載目次:Outlook VBA 予定を登録してみよう
Outlook VBAで、予定の管理も便利にしてしまいましょう。
VBAでの予定の登録だけでなく、登録済みの予定への操作方法もご紹介しています。