機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > 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 プロパティです。





このエントリーをはてなブックマークに追加