ナビゲーション ウィンドウでモジュールを現在選択されているモジュールとして設定する
Microsoft Outlook の NavigationPane オブジェクトの CurrentModule プロパティを使用して、Explorer オブジェクトのナビゲーション ウィンドウで現在選択されているナビゲーション モジュールとして NavigationModule オブジェクトを設定します。
次のサンプルは、[履歴] ナビゲーション モジュールが選択されている場合、ナビゲーション ウィンドウでプログラムまたはユーザーの操作によって [予定表] ナビゲーション モジュールを現在選択されているナビゲーション モジュールとして設定します。 実行する処理は以下のとおりです。
このサンプルでは、最初に、Application オブジェクトの Startup イベントが発生し、それを に
objPane
割り当てるときに、アクティブなエクスプローラーの NavigationPane オブジェクトへの参照を取得し、NavigationPane オブジェクトの ModuleSwitch イベントを検出できるようにします。NavigationPane の ModuleSwitch イベントが発生すると、サンプルは、ModuleSwitch イベントの CurrentModule パラメーターの内容を NavigationPane オブジェクトの CurrentModule プロパティと比較することで、現在のナビゲーション モジュールが変更されたかどうかを確認します。
これらのオブジェクト参照が異なる場合、サンプルは ModuleSwitch イベントの CurrentModule パラメーターの NavigationModule オブジェクト参照の NavigationModuleType プロパティを確認します。
現在選択されている Module オブジェクトの NavigationModuleType プロパティが olModuleJournal に設定されている場合、現在選択されている [ 履歴] ナビゲーション モジュールが一時的に使用不可であり、代わりに [ 予定表] ナビゲーション モジュールが選択されることをユーザーに示すダイアログ ボックスを表示します。
最後に、NavigationPane オブジェクトの Modules コレクションの GetNavigationModule メソッドを使用して、CalendarModule オブジェクトの取得を試みます。 成功した場合、NavigationPane オブジェクトの CurrentModule プロパティは、取得した CalendarModule オブジェクト参照に設定されます。
Dim WithEvents objPane As NavigationPane
Private Sub Application_Startup()
' Get the NavigationPane object for the
' currently displayed Explorer object.
Set objPane = Application.ActiveExplorer.NavigationPane
End Sub
Private Sub objPane_ModuleSwitch(ByVal CurrentModule As NavigationModule)
Dim objModule As CalendarModule
' Check if the currently selected navigation module
' has changed.
If Not (CurrentModule Is objPane.CurrentModule) Then
' If the Journal module was selected, forcibly change
' it to the Calendar module by setting the
' CurrentModule property of the NavigationPane object.
If CurrentModule.NavigationModuleType = olModuleJournal Then
' Let the user know what's happening.
MsgBox "The Journal module is temporarily unavailable. " & _
" Outlook is switching to the Calendar module, if available."
' Retrieve the Calendar module, if one exists, for the
' current Navigation Pane.
Set objModule = objPane.Modules.GetNavigationModule(olModuleCalendar)
' If we have one, set the CurrentModule property of the
' NavigationPane object to the Calendar module.
If Not (objModule Is Nothing) Then
Set objPane.CurrentModule = objModule
End If
End If
End If
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。