wrote :: 2002.11.18

トップページ > Excel > VBA > 実行されたメニューを取得する

実行されたメニューを取得する

独自のメニューを作ったり、ツールバーに自作のマクロを登録したときなど、どのコマンドが実行されたかを知りたい場合があります。実行されたメニューやボタンを調べるには次のようにします。

■メニューの調べ方

ここでは「メニューバーに独自のメニューを追加する」でご紹介したメニューのプロシージャ 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 プロパティです。


[目次]に戻る