セルの表示形式を別のセルに表示させるためのユーザー定義関数をご紹介しました。
表示形式を簡単に確認するためであれば、オートカルクのような雰囲気で、ステータスバーに表示させる方が便利かもしれません。
VBA(Visual Basic for Applications)で、イベントプロシージャをコーディングすることで、セルに設定されている表示形式をステータスバーに表示できます。
表示形式を表示させたいワークシートのシート見出しで右クリック
↓
表示されたショートカットメニューから[コードの表示]をクリック
↓
起動したVisual Basic Editorのプロジェクトエクスプローラで、
「Worksheet_SelectionChange」イベントプロシージャを以下のように記述する
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = Target.NumberFormatLocal
End Sub
↓
「Worksheet_Deactivate」イベントプロシージャを以下のように記述する
Application.StatusBar = False
End Sub
↓
Visual Basic Editorを終了
Worksheet_SelectionChangeは、ワークシートで選択範囲が変更されたときに実行されるイベントプロシージャです。
「Application.StatusBar = Target.NumberFormatLocal」でステータスバーに、アクティブなセルのNumberFormatLocalプロパティ(表示形式)を表示させています。先日ご紹介したユーザー定義関数を使う方法と同じことです。
ステータスバーが表示されていないときにステータスバーを表示させる処理も入れるのであれば、「If Application.DisplayStatusBar = False Then Application.DisplayStatusBar = True」を、「Application.StatusBar = Target.NumberFormatLocal」の前に追加しておきましょう。
これだけで、表示形式をステータスバーに表示させる機能自体は完成なのですが、このままでは他のワークシートが選択されたときにも最後にアクティブだったセルの表示形式がステータスバーに表示され続けてしまいますから、Worksheet_Deactivateプロシージャも記述しておきます。
Worksheet_Deactivateは、ワークシートがアクティブでなくなるときに実行されるイベントプロシージャで、ここで「Application.StatusBar = False」とすることでステータスバーを通常の状態に戻します。
表示形式をいろいろ設定したワークシートで、設定されているユーザー定義書式を確認をしたいときに試してみてください。
- Newer:Wordでバックスラッシュを入力したい−オプションダイアログ
- Older:バックスラッシュを入力したい
Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » 表示形式をステータスバーに表示−Worksheet_SelectionChange・Worksheet_Deactivate