メニューバーへのコントロール追加と処理の分岐

サンプルではメニューバーにポップアップメニューを追加し、選択項目を2つ追加
します。選択項目の選択によって呼び出されるプロシージャ内では、選択されたコン
トロールのキャプションにより処理を分岐しています。

’======1.メニューバーへオリジナルメニュー登録======

Sub AddControl()

    Dim CBar As CommandBar
    Dim CPop As CommandBarPopup
    Dim CBCtrl1 As CommandBarButton
    Dim CBCtrl2 As CommandBarComboBox

    Set CBar = Application.CommandBars("Worksheet Menu Bar")
    CBar.Reset '初期化

    'ワークシートメニューバーへのコントロール追加(PopUp)
    Set CPop = CBar.Controls.Add(msoControlPopup, temporary:=True)
    With CPop
        .Caption = "オリジナルメニュー"

        'ポップアップメニューへのコントロール追加
        Set CBCtrl1 = .Controls.Add(msoControlButton, temporary:=True)
        CBCtrl1.OnAction = "MyProc"
        CBCtrl1.Caption = "テスト1"

        Set CBCtrl2 = .Controls.Add(msoControlComboBox, temporary:=True)
            With CBCtrl2 'コンボボックス
                .OnAction = "MyProc"
                .Caption = "テスト2"
                .AddItem "TEST1"
                .AddItem "TEST2"
                .AddItem "TEST3"
                .ListIndex = 0
                .Width = 100
                .DropDownWidth = 50
            End With

    End With

End Sub

’======オリジナルメニューに登録されるプロシージャ======

Sub MyProc()

    Dim Msg As String

    With Application.CommandBars.ActionControl
    'テスト用のメニューで選択したコントロールのIndexから
    '分岐処理。
        Select Case .Caption
            Case "テスト1"
                Msg = "1番目の項目"
            Case "テスト2"
                Msg = .Text 'コンボボックスのテキストを取得
                .ListIndex = 0 'コンボボックスのListIndex初期化
        End Select

    End With

    MsgBox Msg

End Sub

Excel97,2000



戻る


Excel Word Access VBA! モーグ