Excelは複数のワークシートや複数のワークブックを扱いますが、作成したツールバーは関係ないシートやワークブックが選択された時に表示されたままでは不都合です。
'***************************************************************************************************
' ツールバーテスト2 ThisWorkbook(Class)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
' 変更日付 Rev 変更履歴内容---------------------------------------------------------------------->
' 19/12/03(1.0.0)新規作成
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
' ■■■ ワークブックイベント ■■■
'***************************************************************************************************
'* 処理名 :Workbook_WindowActivate
'* 機能 :このワークブックがアクティブになったイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(既定)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2019年12月03日
'* 作成者 :井上 治
'* 更新日 :2019年12月03日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
'-----------------------------------------------------------------------------------------------
Dim xlAPP As Application ' Excel.Application
Set xlAPP = Application
On Error Resume Next
' Sheet1が選択されていたらツールバーを表示させる
xlAPP.CommandBars(g_cnsTitle).Visible = ActiveSheet.Name = "Sheet1"
On Error GoTo 0
End Sub
'***************************************************************************************************
'* 処理名 :Workbook_WindowActivate
'* 機能 :このワークブックが非アクティブになったイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(既定)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2019年12月03日
'* 作成者 :井上 治
'* 更新日 :2019年12月03日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
'-----------------------------------------------------------------------------------------------
Dim xlAPP As Application ' Excel.Application
Set xlAPP = Application
On Error Resume Next
' ツールバーを非表示にさせる
xlAPP.CommandBars(g_cnsTitle).Visible = False
On Error GoTo 0
End Sub
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' ツールバーテスト2 Sheet1(Class)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
' 変更日付 Rev 変更履歴内容---------------------------------------------------------------------->
' 19/12/03(1.0.0)新規作成
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
' ■■■ ワークシートイベント ■■■
'***************************************************************************************************
'* 処理名 :Worksheet_Activate
'* 機能 :Sheet1がアクティブになった時のイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2019年12月03日
'* 作成者 :井上 治
'* 更新日 :2019年12月03日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub Worksheet_Activate()
'-----------------------------------------------------------------------------------------------
Dim xlAPP As Application ' Excel.Application
Set xlAPP = Application
On Error Resume Next
' ツールバーを表示させる
xlAPP.CommandBars(g_cnsTitle).Visible = True
On Error GoTo 0
End Sub
'***************************************************************************************************
'* 処理名 :Worksheet_Deactivate
'* 機能 :Sheet1が非アクティブになった時のイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2019年12月03日
'* 作成者 :井上 治
'* 更新日 :2019年12月03日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub Worksheet_Deactivate()
'-----------------------------------------------------------------------------------------------
Dim xlAPP As Application ' Excel.Application
Set xlAPP = Application
On Error Resume Next
' ツールバーを非表示にさせる
xlAPP.CommandBars(g_cnsTitle).Visible = False
On Error GoTo 0
End Sub
'----------------------------------------<< End of Source >>----------------------------------------