|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
创建工具栏很简单,直接使用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)
创建好CommandBar对象后,可以使用它的Controls集合的Add方法添加控件,也就是工具命令栏。
可以通过Add方法参数中的Type属性指定命令栏的类型。Type属性由msoControlType常数指定。
•msoControlButton:1,普通按钮类型
•msoControlEdit:2,编辑框类型
•msoControlDropdown:3,复合框类型,不能输入新项目
•msoControlComboBox :4,和DropDown一样的复合框类型,允许输入新项目
•msoControlPopup:10,弹出菜单
如果在Add方法中指定ID属性的值,可以创建内置命令栏,例如设置id:=3则创建“保存”命令栏,不需要知道OnAction属性,点击该命令栏将执行默认保存命令。
还可以设置命令栏的Style属性。Style属性由msoButtonStyle或msoComboStyle常数指定。
msoButtonStyle常数:
•msoButtonAutomatic:0,默认值,对于菜单栏,等于msoButtonIconAndCaption,对于工具栏,等于msoButtonIcon
•msoButtonCaption:2,只显示标题,忽略图标
•msoButtonIcon:1,在工具栏上只显示图标,在菜单栏上只显示标题
•msoButtonIconAndCaption:3,显示图标,并在图标右边显示标题
•msoButtonIconAndCaptionBelow:7,对于菜单栏,等同于msoButtonIconAndCaption,对于工具栏,在图标下方显示标题
•msoButtonWrapCaption:14 ,同msoButtonCaption类似,只是如果标题太长时分行显示
msoComboStyle常数:
•msoComboLabel:1,左边有标题
•msoComboNormal:0,没有标题
如果命令栏的Type属性设置为msoControlComboBox,该命令栏可以使用ComboBox控件的各种方法和属性,例如AddItem方法、Clear方法等。如果创建时设置了Caption属性为“请选择:”,则可以使用Controls(“请选择:”)来表示该复合框命令栏。例如下面的代码:
With CommandBars("Custom Toolbar").Controls("请选择:")下面是一个创建自定义工具栏的完整例子。
Sub CreateToolBar() Dim newTool As CommandBar Dim i As Integer '如果发现有相同工具栏,删除该工具栏
On Error Resume Next CommandBars("Custom Toolbar").Delete
On Error GoTo 0 '添加名称为“Custom Toolbar”的工具栏,并在工作表上方显示
Set newTool = CommandBars.Add(Name:="Custom Toolbar", Position:=msoBarTop)
With newTool .Visible = True
With .Controls.Add(Type:=msoControlButton)
.Caption = "复制"
.Style = msoButtonIconAndCaption
.TooltipText = "复制文件"
.FaceId = 18
.OnAction = "HandleTool"
End With
With .Controls.Add(Type:=msoControlButton, ID:=3)
.Caption = "保存"
.BeginGroup = True
.Style = msoButtonIcon
End With
With .Controls.Add(Type:=msoControlEdit)
.Caption = "输入:"
.BeginGroup = True
.Style = msoButtonIcon
.TooltipText = "在此输入数据"
.OnAction = "HandleText"
End With
With .Controls.Add(Type:=msoControlComboBox)
.Caption = "请选择:"
.BeginGroup = True
.Style = msoComboLabel
.TooltipText = "请选择所需项目"
.AddItem "Apple"
.AddItem "Banana"
.AddItem "Orange"
.ListIndex = 1
.OnAction = "HandleCombo"
End With End With
End Sub
Sub ExecuateCombo()
With CommandBars("Custom Toolbar").Controls("请选择:")
MsgBox .ListCount
If .List(1) = "Apple" Then
.Execute
End If
End With
End Sub
Sub HandleCombo()
Dim sCall As String sCall = CommandBars.ActionControl.Text
MsgBox "你选择了: " & sCall, vbInformationEnd Sub Sub HandleText()
Dim sCall As String sCall = CommandBars.ActionControl.Text
MsgBox "你输入了: " & sCall, vbInformation
End Sub
Sub HandleTool()
Dim sCall As String sCall = CommandBars.ActionControl.Caption
MsgBox "你点击了: " & sCall, vbInformation
End Sub
Sub RemoveToolBar()
On Error Resume Next
CommandBars("Custom Toolbar").Delete
End Sub
|
|