Excel のタイトルバーの文字列にシート名を加える

Excel のタイトルバーの文字列は通常「Microsoft Excel - Book1.xls」のようになります。

「Microsoft Excel」の部分を省いて、代わりに現在選択されているシート名を出してみます。

ワークブックモジュール内に以下のプロシージャを記述します。

Private Sub Workbook_Open()
  ShowSheetName
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  ShowSheetName
End Sub

Sub ShowSheetName()
  Application.Caption = ThisWorkbook.Name
  ActiveWindow.Caption = ActiveSheet.Name
End Sub


ブックを開いた時は Workbook_SheetActivate イベントは実行されませんので Workbook_Open イベントでタイトルバーの文字列を変更させています。この2つのイベントを使うのが原型ですが、すべての使用環境において正しく実行させるには、Workbook_BeforeClose イベント、Workbook_WindowActivate イベント、Workbook_WindowDeactivate イベントなども組み合わせる必要があります。Excel を閉じずにブックだけを閉じた場合、他のブックを同時に開いている場合などがあるからです。