HOME > 即効テクニック > Excel VBA > メニューバー・ツールバー関連のテクニック > 特定のコントロールを指定してIDを調べるには

即効テクニック

メニューバー・ツールバー関連のテクニック

特定のコントロールを指定してIDを調べるには

(Excel 97/2000)
特定のコントロールを指定してIDを調べるには(例えばワークシートメニューバーの左から数えて四番目”挿入”メニューの5項目目の”グラフ”のIDを調べるには・・・)
Sub GetCtrlID()

    Dim CBar As CommandBar
    Dim CPop As CommandBarPopup
    Dim CButton As CommandBarButton

    Set CBar = CommandBars(1)
    Set CPop = CBar.Controls(4)    'あるいは("挿入(&I)")
    Set CButton = CPop.Controls(5)  '("グラフ(&H)...")

    MsgBox CButton.Caption & vbCrLf & CButton.ID

End Sub
※コントロールはIndex数値やIDでも指定できますが、97、2000で数値が異なることもあるため両方でアプリケーションを使用する可能性のあるときは上記のような方法で確認する必要があります。例えば”ファイル”メニューのIndexは印刷関係のコマンドのIndexに若干のずれがあります。キャプションによる指定も97ではカタカナが半角であったりなどしますので、この場合はIDは同じですからIDで指定してFindControlを用いる方がより正確であるといえます。

(参考)
テクニック集:コマンドバーのコントロールを指定して実行
テクニック集:コマンドバー機能一覧を作成する
テクニック集:Visual Basic Editor コマンドバー機能一覧
テクニック集:メニューバーへのコントロール追加と処理の分岐
テクニック集:ワークシートメニューバーの機能一覧