【Outlook VBA】繰り返しの予定(定期的なアイテム)を操作する

Outlook VBA繰り返し予定を自在に設定する VBA

おはようございます、タナイです。

タナイ
タナイ

Outlook VBAの情報が少ない……。

Excel VBAと違って利用頻度も低いから本を買うほどでもないし、かといってネットでちょろっと知りたい情報が見つからない。

AppointmentItemのプロパティに繰り返しの設定がないけど、どうやるんだ?

ニッチですが、今日はこんな疑問を解決します。

.GetRecurrencePatternメソッドを使う

ちょっとExcel VBAに慣れている人なら、Outlookの予定表を見たときにAppointmentItemくらいにまではたどり着くと思います。

ただ、Outlook VBAだと感覚的にオブジェクト直下にありそうなプロパティがなくてハマるんですよね。

こういうとき、.Get○○メソッドみたいなので新しいオブジェクトを取得する必要が出てくるパターンが多い気がします。

結論を言ってしまうと、繰り返しの予定はAppointmentItemオブジェクトに対して.GetRecurrencePatternを使用してください。

Sub setRecurrence(ByVal apitem as AppointmentItem)
    Dim recPattern
    Set recPattern = apitem.GetReccurencePattern
    With recPattern
        .ReccurenceType = olRecursWeekly 
        .DayOfWeekMask = olMonday 
        .PatternStartDate = #8/11/2016#
        .Interval = 2
        .StartTime = #12:00:00 AM#
        .Duration = 24 * 60
        .NoEndDate = True
    End With
End Sub

上記のようなイメージになります。

一応、原文が英語なので少し読みにくいですが公式ドキュメントがありますので、詳細仕様はそちらでも確認できます。

RecurrencePattern プロパティ (Outlook) | Microsoft Docs

タナイ
タナイ

繰り返しアイテムの終了日を設定していないとOutlookがバグることがあって終了日を設定したかったんだよね

以前、Outlookで受信したパスワード付きzipを自動で解凍するエントリも書きましたが、地味にたまに使いたいシーンが出てくるので都度勉強です。

余談

Excel VBAで基礎を学んでおくと、私のようにOutlookやPowerPointなどの他のVBAにも簡単に応用が利きます

個人的に本気でオススメしたい書籍がコレです。

クラスモジュールやユーザーフォームなど、ネットの情報だといまいち断片的なところがしっかりまとまっていて、VBAを本当に実践的に使えるようステップアップするのに最適の書籍だと思います。

コメント

タイトルとURLをコピーしました