|
VBAマクロ作成は我流でセオリーは知らないレベルなのですが、
メニューバーにポップアップボタンとその中にボタンとコンボボックスをコード1で作成しました。
そこで、コンボボックス選択時にその値かインデックス値を取得したいのですが、エラー1となりうまく出来ません。
どなたか、対処方法をご教授願えないでしょうか?宜しくお願いいたします。
○コード1
Sub OnCommandButtonAdd()
Call OnCommandButtonDel
Set mymbar = Application.CommandBars("Worksheet Menu Bar")
Set mymbar1 = mymbar.Controls.Add(Type:=msoControlPopup)
With mymbar1
.TooltipText = ThisWorkbook.Name
.Caption = "ユーザメニューボタン"
End With
Set mymbar2 = mymbar1.Controls.Add(Type:=msoControlButton)
With mymbar2
.Style = msoButtonIconAndCaption
.Caption = "XX"
.OnAction = "OnCbarChg"
End With
Set mymbar2 = mymbar1.Controls.Add(Type:=msoControlComboBox)
With mymbar2
.Caption = "ComboBox"
.OnAction = "コンボボックス値表示"
.AddItem "表示A"
.AddItem "表示B"
.ListIndex = 1
End With
End Sub
Sub コンボボックス値表示()
MsgBox Application.CommandBars("Worksheet Menu Bar").Controls("ComboBox").Text
End Sub
○エラー1
プロシジャーの呼び出し、引数が不正です
尚、メニューバーではなく、
新たなツールバー(コマンドバー)とその中にボタンとコンボボックスをコード2で作成した場合は、
コンボボックス選択時にその値が取得出来ました。
コード1との相違点は、見た目でも分かるのですが、私の知識レベルの限界となってしまいました。
○コード2
Sub OnCbar
mycbarbutton = "ユーザコマンドボタン"
On Error Resume Next
CommandBars(mycbarbutton).Delete
Set mycbar1 = Application.CommandBars.Add(Name:=mycbarbutton, Position:=msoBarFloating, temporary:=True)
Set mycbar2 = mycbar1.Controls.Add(Type:=msoControlButton)
With mycbar2
.Style = msoButtonIconAndCaption
.Caption = "XX"
.OnAction = "OnCbarChg"
End With
Set mycbar2 = mycbar1.Controls.Add(Type:=msoControlComboBox)
With mycbar2
.Caption = "ComboBox"
.OnAction = "コンボボックス値表示"
.BeginGroup = True
.AddItem "表示A"
.AddItem "表示B"
.ListIndex = 1
End With
With Application.CommandBars(mycbarbutton)
.Visible = True
.Position = msoBarTop
End With
End Sub
Sub コンボボックス値表示()
MsgBox CommandBars(mycbarbutton).Controls("ComboBox").Text
End Sub
|
|