最后介绍的右键菜单其实也是属于一种菜单命令栏。我们可以在常用的右键菜单栏中添加自定义菜单,也可以创建新的自定义右键菜单代替默认的设置。
例如,下面的例子中工作表区域的右键菜单添加自定义菜单命令栏。
Sub AddRightClickMenu()
' 单元格区域右键菜单
With Application.CommandBars("cell")
.Reset
' 添加控件
With .Controls.Add(Type:=msoControlButton)
.Caption = "Test Right Click" ' 标题
.BeginGroup = True ' 分类,添加分隔线
.OnAction = "MenuProc" ' 指定处理过程
End With
End With
End Sub
阅读全文…
VBA
CommandBar, Excel, VBA
接着介绍CommandBar的三个类型之一,工具栏。
工具栏
创建工具栏很简单,直接使用CommandBars集合的Add方法,除了需要指定Name属性之外,可以接受其它所有的默认属性值。可以通过Position属性指定工具栏显示的位置。
Position属性的值由msoBarPosition常数指定。
- msoBarLeft: 0,工具栏显示在工作表左边
- msoBarTop: 1,工具栏显示在工作表上边
- msoBarRight: 2,工具栏显示在工作表右边
- msoBarBottom: 3,工具栏显示在工作表下边
- msoBarFloating: 4,工具栏浮动显示
- msoBarMenuBar: 5,这个常数表示创建菜单栏,不用于创建工具栏
- msoBarPopup: 6,这个常数表示创建弹出菜单
例如下面的代码创建名称为“Custom Toolbar”的位于工作表区域上边的工具栏。
Set newTool = CommandBars.Add(Name:="Custom Toolbar", Position:=msoBarTop)
阅读全文…
VBA
CommandBar, Excel, VBA
在Excel5和Excel95时,菜单和工具栏分别使用不同的对象。从Excel97开始,所有的菜单和工具栏都使用同一种对象CommandBar来表示。
一般来说包括三种常用的CommandBar类型。通过CommandBar对象的Type属性可以判断该对象是下列三种类型的其中之一。Type属性返回一个msoBarType常量(包括msoBarNormal, msoBarMenu, msoBarPopup)。
第一种是菜单栏,msoBarMenu,可以自定义菜单以及子菜单添加在工作表的菜单上。如下图:

第二种是工具栏,msoBarNormal,可以在Excel的各个位置创建自定义工具栏。如下图:

第三种是右键菜单,msoBarPopup,可以自定义右键菜单,或在默认右键菜单上添加菜单项。如下图:

CommandBar对象包含的项目叫做Control。Excel2003包括大约124个内置CommandBar和上千个Control。
接着的三篇文章将介绍怎样使用VBA代码创建自定义菜单和工具栏。
阅读全文…
VBA
CommandBar, Excel, VBA
最近评论