易门龙泉公园门票价:CommandBar介绍-右键菜单

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 09:51:51

CommandBar介绍-右键菜单

2009年2月22日评论 发表评论

最后介绍的右键菜单其实也是属于一种菜单命令栏。我们可以在常用的右键菜单栏中添加自定义菜单,也可以创建新的自定义右键菜单代替默认的设置。

例如,下面的例子中工作表区域的右键菜单添加自定义菜单命令栏。

Sub AddRightClickMenu()' 单元格区域右键菜单    With Application.CommandBars("cell").Reset' 添加控件        With .Controls.Add(Type:=msoControlButton).Caption = "Test Right Click"           ' 标题            .BeginGroup = True                      ' 分类,添加分隔线            .OnAction = "MenuProc"                ' 指定处理过程        End WithEnd WithEnd Sub


执行上面的过程之前,在工作表区域中右键点击任意单元格,显示的弹出菜单如下图:

执行AddRightClickMenu过程后,将在弹出的右键菜单中添加“Test Right Clock”命令栏,显示如下:

使用下面的语句可以删除这个自定义右键菜单命令栏。

CommandBars("cell").Controls("Test Right Click").Delete

同样,也可以创建自己的CommandBar来代替默认的右键菜单。

Sub CreateRightClickMenu()Dim newTool As CommandBarDim i As Integer ' 如果已经存在相同名称的CommandBar,删除它    On Error Resume NextCommandBars("RightClick Popup").DeleteOn Error GoTo 0 ' 创建名称为“RightClick Popup”的自定义菜单栏    Set newTool = CommandBars.Add(Name:="RightClick Popup", Position:=msoBarPopup) With newToolWith .Controls.Add(ID:=19).Caption = "复制"End WithWith .Controls.Add(ID:=22).Caption = "粘帖"End WithWith .Controls.Add(ID:=1733).Caption = "缩放"End WithEnd WithEnd Sub

运行CreateRightClickMenu过程,将创建名称为“RightClick Popup”的自定义菜单栏,并在其上添加三个内置命令栏。
自定义菜单栏添加完成后,还需要替换默认的设置。需要在工作表的BeforeRightClick事件或Workbook的SheetBeforeRightClick事件中添加下面的代码。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)Dim cbRightClick As CommandBar' 确保只有在自定义右键菜单存在时才显示    On Error Resume NextSet cbRightClick = Nothing' 如果自定义右键菜单不存在,那么cbrRightClick设置为Nothing        Set cbRightClick = Application.CommandBars("RightClick Popup")On Error GoTo 0 If Not cbRightClick Is Nothing Then' 显示自定义右键菜单        cbRightClick.ShowPopup' 取消默认右键菜单        Cancel = TrueEnd IfEnd Sub

这样在放置这个代码的工作表或整个工作簿中的单元格区域中点击右键,将显示自定义的右键菜单,如下图:

示例文件下载:Box.Net | SkyDrive

另外,在示例文件中还包括了一个小工具,这个工具列出所有CommandBar的命令栏。其中包括这些命令栏的一些基本属性。这些基本属性的数值所代表的意思可以在代码的注释中了解。界面如下图,点击“获取CommandBar列表”按钮即可。

Related posts:

  1. [转]使用Windows自带程序压缩/解压文件
  2. 提取丢失数据源的图表中的数据
  3. Excel中VBA关闭PPS文件
  4. Excel窗体API应用技巧
  5. 使用VBA操纵Lotus Notes

以上关联文章由 Yet Another Related Posts Plugin 提供支持。

VBA CommandBar, Excel, VBA

评论 (2) Trackbacks (0) 发表评论 Trackback
  1. willing001 2009年6月8日12:08 | #1 回复 | 引用

    我想问如何在右键菜单中添加超链接。我想做的是,在office软件中选中文字,点击右键的搜索,就能打开ie并自动用google或者百度对选中的文字进行搜索。

winland

2009年6月9日22:21 | #2 回复 | 引用

@willing001
这个其实只是处理一下右键过程怎样打开IE搜索选择的文字,这里用Shell来做,也可以使用CreateObject创建IE对象。
Sub AddRightClickMenu()
With Application.CommandBars(”cell”)
.Reset
With .Controls.Add(Type:=msoControlButton)
.Caption = “Search”
.BeginGroup = True
.OnAction = “RightClickProc”
End With
End With
End Sub

Sub RemoveRightClickMenu()
On Error Resume Next
CommandBars(”cell”).Controls(”Search”).Delete
End Sub

Sub RightClickProc()
Dim strTemp As String
strTemp = Selection.Value
Shell “C:\Program Files\Internet Explorer\iexplore.exe http://www.google.cn/search?hl=zh-CN&q=” & strTemp, vbNormalFocus
End Sub