【はじめてのOutlook VBA】Outlookの予定を登録する方法


outlookvba,ApointmentItem,eyecatch

みなさまこんにちは、ノグチです。

企業に属しておられる方々の中には、メーラーやスケジューラーが会社で指定されていて、「社内のメンバー同士のスケジュールを把握するため、予定は必ずスケジューラーに入れること!」という社内ルールがあるという方もおられるのではないでしょうか。

しかしこの予定を登録するのって、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,開発タブ

メニューに開発タブが見当たらない場合

Outlookのメニューに「開発」タブが見当たらない!という場合は、リボンのユーザー設定を変更すれば表示させられますよ。

メニューから「ファイル」> オプションをクリックして、「リボンのユーザー設定」を開きます。

画面右側にタブ名が並んでいますので、「開発」の左側にあるチェックボックスにチェックを入れて、「OK」をクリックすれば、メニューに「開発」タブが現れます。

Outlook,リボンのユーザー設定

あとは、エクセルのVBEと同じように、標準モジュールを挿入すれば…

Outlook,VBE

この通り、いつもの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メソッドの時と同様に、非常に単純です。

AppointmentItem.Save

VBAで予定を登録する

では早速、AppointmentItemオブジェクトとプロパティ、メソッドでOutlookの予定を登録してみましょう。

まずはAppointmentItem型の変数を宣言します。

Dim オブジェクト名 As Outlook.AppointmentItem

そして、Outlookのアイテムのオブジェクトを取得するにはCreateItemメソッドを使用するのでしたね。

CreateItemメソッドのパラメータには、予定を表す olAppointmentItemを指定します。

Outlookアプリケーションオブジェクト.CreateItem(olAppointmentItem)

CreateItemメソッドとパラメータについては下記記事で紹介していますので、こちらをご覧ください。

【エクセルVBA】Outlookでメールを作成・送信する方法
エクセルシートに記入された件名や本文を、エクセルVBAによってOutlookのメールの件名と本文にセットしてメール送信する方法をご紹介しています。VBAでメールの送信ができれば、宛先に応じてメールの本文を変えつつ一斉に送信することもできますよ。

そしてApointmentItemオブジェクトの各パラメータを指定したコードがこちら。


2018年8月1日、午後2時から4時までの会議の予定です。

予定時刻の30分前にアラームを鳴らすように指定しています。

このコードを実行してみると…

Outlook,予定登録
この通り、ちゃんとOutlookの予定が登録されていますね。

最後に

今回は、Outlook VBAでOutlookの予定を登録する方法をご紹介しました。

エクセルのワークシートのデータなどを使わないで、Outlook単体の動作をする処理なら、OutlookのVBAでコーディングすることもできますよ。

次回は、エクセルワークシートに一覧化した予定を、Outlookの予定としてまとめて登録する方法をご紹介していきます。

【Outlook VBA】エクセルワークシートの内容で予定登録する方法
Outlookの予定表は便利ですが、頻繁に予定を登録するのは面倒ですよね。本記事では、Outlook VBAからエクセル操作のための参照設定の方法と、エクセルワークシートに一覧化した内容でOutlookの予定を登録する方法をご紹介しています。

それでは、最後までお読みいただきありがとうございました!

  1. 【はじめてのOutlook VBA】Outlookの予定を登録する方法
  2. 【Outlook VBA】エクセルワークシートの内容で予定登録する方法

  投稿者プロフィール

ノグチフリーランスPG・SE
元製造子会社SE。
業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。

コメント