ft popupmenu就是普通的菜单. 只是把最顶级的那个隐藏了.所以看不到而已.只要执行popupmenu父菜单的命令就能随便弹出任意父菜单下的子菜单了.
大哥,我说的是在OFFICE的VBA编辑器中啊。
使用CommandBar 属性ShowPopup 方法
将指定的命令栏作为快捷菜单,在指定坐标或当前光标位置显示。注意 如果命令栏的 Position 属性没有设置为 msoBarPopup,那么本方法无效。expression.ShowPopup(x, y)expression 必需。该表达式返回一个 CommandBar 对象。x Variant 类型,可选。快捷菜单所在位置的 x 坐标。如果省略此参数,那么将取当前光标位置的 x 坐标。y Variant 类型,可选。快捷菜单所在位置的 y 坐标。如果省略此参数,那么将取当前光标位置的 y 坐标。示例 本示例可实现的功能为:创建一个包含两个控件的快捷菜单。ShowPopup 方法用于显示该快捷菜单。Set myBar = CommandBars _ .Add(Name:="Custom", Position:=msoBarPopup, Temporary:=False) With myBar .Controls.Add Type:=msoControlButton, Id:=3 .Controls.Add Type:=msoControlComboBox End With myBar.ShowPopup
VBA里面好象没有本身菜单的使用,不过应该可以通过API获得类似效果
怎样用API了,能不能具体点,最好有示例代码
在Userfrom的控件上添加Popupmenu菜单,在VBA编程中没有人有这方面的需求吗????
Private Sub UserForm_Initialize() Dim myBar As CommandBar Set myBar = CommandBars.Add(Name:="Custom", Position:=msoBarPopup, Temporary:=False) With myBar .Controls.Add Type:=msoControlButton, ID:=3 .Controls.Add Type:=msoControlComboBox .Controls(2).AddItem "是不是这样" End WithEnd Sub '右击窗体弹出菜单 Private Sub UserForm_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 2 Then CommandBars("Custom").ShowPopup End If End SubPrivate Sub UserForm_Terminate() CommandBars("Custom").Delete End Sub
popupmenu就是普通的菜单.
只是把最顶级的那个隐藏了.所以看不到而已.只要执行popupmenu父菜单的命令就能随便弹出任意父菜单下的子菜单了.
将指定的命令栏作为快捷菜单,在指定坐标或当前光标位置显示。注意 如果命令栏的 Position 属性没有设置为 msoBarPopup,那么本方法无效。expression.ShowPopup(x, y)expression 必需。该表达式返回一个 CommandBar 对象。x Variant 类型,可选。快捷菜单所在位置的 x 坐标。如果省略此参数,那么将取当前光标位置的 x 坐标。y Variant 类型,可选。快捷菜单所在位置的 y 坐标。如果省略此参数,那么将取当前光标位置的 y 坐标。示例
本示例可实现的功能为:创建一个包含两个控件的快捷菜单。ShowPopup 方法用于显示该快捷菜单。Set myBar = CommandBars _
.Add(Name:="Custom", Position:=msoBarPopup, Temporary:=False)
With myBar
.Controls.Add Type:=msoControlButton, Id:=3
.Controls.Add Type:=msoControlComboBox
End With
myBar.ShowPopup
Dim myBar As CommandBar
Set myBar = CommandBars.Add(Name:="Custom", Position:=msoBarPopup, Temporary:=False)
With myBar
.Controls.Add Type:=msoControlButton, ID:=3
.Controls.Add Type:=msoControlComboBox
.Controls(2).AddItem "是不是这样"
End WithEnd Sub
'右击窗体弹出菜单
Private Sub UserForm_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 2 Then
CommandBars("Custom").ShowPopup
End If
End SubPrivate Sub UserForm_Terminate()
CommandBars("Custom").Delete
End Sub