独自のメニューを作ったり、ツールバーに自作のマクロを登録したときなど、どのコマンドが実行されたかを知りたい場合があります。実行されたメニューやボタンを調べるには次のようにします。
ここでは「メニューバーに独自のメニューを追加する」でご紹介したメニューのプロシージャ UnProtectSheet を使って解説します。
実行されたメニューのキャプションは、CommandBars コレクションの ActionControl プロパティを調べるとわかります。
Sub UnProtectSheet() MsgBox CommandBars.ActionControl.Caption End Sub
ActionControl プロパティは実行されたコントロールを返しますので、キャプションを知りたいときは Caption プロパティを、何番目のコントロールかを知りたいときは Index プロパティなどを、メニューがチェックされているかどうかを知るには State プロパティを調べます。
ツールバーに追加したボタンも同じ ActionControl プロパティで知ることができます。新しく [ユーザー設定 1] というツールバーを作り、ボタンを 1 つ追加します。
このボタンに先の UnProtectSheet を登録してクリックしてみます。結果は下の通りです。
コントロールの Parent プロパティを調べると、そのコントロールが配置されている親オブジェクトがわかります。たとえば、上で作成したツールバーのボタンに次のプロシージャを登録すると、ツールバーの名前を知ることができます。
Sub UnProtectSheet() MsgBox CommandBars.ActionControl.Parent.Name End Sub
ツールバーには Caption プロパティがなく、名前は Name プロパティです。