カスタマイズしたメニューに、アクセスキーを表示する方法をご紹介しておきます。
Sub CustomizeMenuBar()
Dim objCB As CommandBar
Dim objCBCtrl As CommandBarControl
Set objCB = Application.CommandBars("Worksheet Menu Bar")
On Error Resume Next
objCB.Controls("テスト_メニューの追加(&M)").Delete
On Error GoTo 0
Set objCBCtrl = objCB.Controls.Add(Type:=msoControlPopup, Temporary:=True)
objCBCtrl.Caption = "テスト_メニューの追加(&M)"
With objCBCtrl
.Controls.Add Type:=msoControlButton
With .Controls(1)
.Caption = "テスト_コマンドA(&A)"
.OnAction = "TestCmdA"
End With
.Controls.Add Type:=msoControlButton
With .Controls(2)
.Caption = "テスト_コマンドB(&B)"
.OnAction = "TestCmdB"
End With
End With
上記のコードを、VBE(Visual Basic Editor)を起動して標準モジュールに貼り付け実行すると、下図のようにアクセスキーつきでメニュー項目が表示されます。
アクセスキーを表示するためのプロパティがあるように思ってしまう方もいらっしゃるようですが、そうではなく、
「objCBCtrl.Caption = "テスト_メニューの追加(&M)"」
「.Caption = "テスト_コマンドA(&A)"」
のように、Captionプロパティで、メニューに表示される文字列の後に「&」で英数字を指定するだけです。
▼サンプルファイル(002979.xls 39KByte)ダウンロード
サンプルファイルの標準モジュールには上記のコードの他、[テスト_コマンドA][テスト_コマンドB]から呼ばれるダミーのマクロ、カスタマイズしたメニューバーを元に戻すResetMenuBarマクロが記述してあります。
また、ブックがアクティブなときだけメニューがカスタマイズされるように、Workbook_ActivateイベントプロシージャからCustomizeMenuBarマクロを、Workbook_DeactivateイベントプロシージャからResetMenuBarマクロを、それぞれ呼んでいます。
Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » カスタマイズしたメニューにアクセスキーを表示する
- Newer:Wordで実践 やさしくて役に立つ「マクロ」事例集
- Older:スライド番号を途中から振りたい−目的別スライドショー
TrackBack:5
- TrackBack URL
- メニュー項目をすべて削除する from インストラクターのネタ帳
- 対象:Excel97,Excel2000,Excel2002,Excel2003 VBA(Visual Basic for Applications)で...
- メニューをカスタマイズするマクロ from インストラクターのネタ帳
- 対象:PowerPoint97,PowerPoint2000,PowerPoint2002,PowerPoint2003 2002以前のPowerPoi...
- メニューのカッコ内に表示されているアルファベットは何? from インストラクターのネタ帳
- 対象:Windows全般 「メニューに表示されているアルファベットは何ですか?」 「メニューのカッコつきで表示されるアルファベットは何のためにあるんです...
- メニューバーを非表示にするマクロ from インストラクターのネタ帳
- 対象:Excel2002, Excel2003 VBA(Visual Basic for Applications)で、メニューをカスタマイズする方法を...
- ショートカットメニューを非表示に−Application.CommandBars("Cell").Enabled = False from インストラクターのネタ帳
- 対象:Excel2002, Excel2003, Excel2007 VBA(Visual Basic for Applications)で、メニューを...