EXCEL工具栏细解

EXCEL工具栏细解
EXCEL工具栏细解

CommandBar介绍-工具栏

接着介绍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)

创建好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

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, vbInformation

End 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

Sub RemoveToolBar()

On Error Resume Next

CommandBars("Custom Toolbar").Delete End Sub

相关主题
相关文档
最新文档