【Outlook VBA】立ち上げ時、複数のカレンダーを自動で表示したい

【Outlook VBA】立ち上げ時、複数のカレンダーを自動で表示したい

Outlookの「起動後に表示するフォルダー」を「予定表」に変更すると、再起動時に既定の予定表以外の予定表が非表示になってしまいます。表示しておきたい予定表が複数ある場合、表示の操作を毎回やるのは面倒です。VBAマクロで対応できたので、情報を共有したいと思います。

あなたへ


Outlookの初期設定では、立ち上げた時にメールフォルダーが開かれ、受信箱が見えるようになっています。個人的にはメールよりも予定表を見ることが多いので、設定を変更していました。

この設定はOutlookのオプション→ 詳細設定→ 「起動後に表示するフォルダー」で変更できます。

ただ、「起動後に表示するフォルダー」を「予定表」に設定し、複数の予定表を使っている場合、ちょっと面倒なことが起こりました。

予定表が1つしか表示されない?

複数の予定表を表示したい場合、フォルダウィンドウ内で表示したい予定表のチェックボックスにチェックを入れます。

このチェックボックスの状態を保持してほしいのですが、Outlookを再起動するとチェックが外れてしまうようです。

「起動時に表示するフォルダー」が「予定表」になっている時
「起動時に表示するフォルダー」が「予定表」になっている時
この状態を保持してほしいが、毎回チェックは外れる
この状態を保持してほしいが、毎回チェックは外れる

非表示の予定表はチェックを入れれば表示されます。しかし、起動たびに操作するのは面倒です。

この動きはOutlook 2010以前から変わらない様なので、VBAで対応したいと思います。

指定の予定表を表示するVBAマクロコード

' Outlook起動時に表示するカレンダーを設定します
Public Sub setupInitialDisplayCalendars()

    
    Dim navModCal As CalendarModule
    Dim navGroup As NavigationGroup
    
    ' 予定表のナビゲーションモジュールを取得
    Set navModCal = ActiveExplorer.NavigationPane.Modules.GetNavigationModule(olModuleCalendar)
    ' ナビゲーショングループを取得
    Set navGroup = navModCal.NavigationGroups.Item("個人用の予定表")
    
    If Not (navGroup Is Nothing) Then
    
        ' それぞれのカレンダーを表示する
        navGroup.NavigationFolders.Item("実績").IsSelected = True
        
    End If

End Sub

この関数をApplication. Startup イベントで呼び出すようにしておけば、Outlook起動時に自動で指定のカレンダーが開かれます。
(※マクロのセキュリティ設定によってはメッセージが表示されます。)

まとめ

参照できる記事が少なかったので、トライアンドエラーの時間がかかりました。

Outlook VBAはここが難点ですね。

ただ、Microsoftのドキュメントも探すときの勘所がつかめてきたので、良い勉強の機会になったと思います。

共有できそうな情報があれば、お知らせしたいと思います。


この断片があなたの星へ続く道を、少しでも照らすことを願って


<参考>

投稿者: 0.1

厚塗りで「存在感や重さ、質感による説得力」のあるイラストを目指しています。 日本では線画をベースとしたイラストが主流ですが、そこから外れたモノもイラストの世界を広げる為に必要だと考えています。「世界観にもう一味試したい」そんなときには、ぜひお声がけください。

COMMENT