サンプルではメニューバーにポップアップメニューを追加し、選択項目を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
|