|
VBA勉強中の者です。よろしくお願いいたします。
UserFormを右クリックするとメニューが現れ、その中の項目を選択すると
マクロが実行されるというものをつくる場合・・・・・・。
とりあえす以下のコードを考えました。
///////// UserForm1 フォームモジュール //////////////////////////
Dim myCB As CommandBar
Private Sub UserForm_Initialize()
On Error Resume Next
CommandBars("tbMenu").Delete
On Error GoTo 0
Set myCB = CommandBars.Add(Name:="tbMenu", _
Position:=msoBarPopup, Temporary:=True)
With myCB
With .Controls.Add(Type:=msoControlButton)
.Caption = "第1次変換モード"
.OnAction = "FirstStringConv"
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "第2次変換モード"
.OnAction = "SecondStringConv"
.BeginGroup = True
End With
End With
End Sub
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 2 Then
myCB.ShowPopup
End If
End Sub
Private Sub UserForm_Terminate()
On Error Resume Next
CommandBars("myCB").Delete
On Error GoTo 0
End Sub
以上実行すると、フォームを右クリックするとメニューが表示され、
そのメニューから項目を選択すると標準モジュール内のプロシージャ
[ FirstStringConv ] 、[ condStringConv ] を呼び出せました。
ここからが質問なのですが、このメニューから標準モジュール内では
なく、フォームモジュール内に書かれてあるプロシージャを呼び出す
という場合には、 .OnAction = の次にどのような書き方で実行したい
プロシージャ名を指定すればよいのでしょうか?
さっぱりわかりません。
どなたかご指導お願いいたします。
|
|