在工具栏上添加下拉列表框
技巧1
在工具栏上添加下拉列表框
如果需要在工具栏中添加类似“字体”这样的下拉列表控制框控件,那么可以使用下面的代码。
Sub AddDropdo wn()
Dim myDropdow n As Object
Dim myCap As Variant
Dim i As Integer myCap= Array("基础应用", "VBA程序开发","函数与公式")
Call DeleteBut ton
Set myDropdow n= Applicati https://www.360docs.net/doc/b610519319.html,man dBars("Fo rmatting" ).Control s _
.Add(Type :=msoCont rolDropdo wn, Before:=1 )
With myDropdow n
.Caption ="请选择版块"
.OnAction = "myOnA" .Style= msoComboN ormal
For i=0 To
UBound(my Cap)
.AddItem myCap(i) Next
.ListInde x = 1
End With
End Sub
Sub DeleteBut ton()
With Applicati https://www.360docs.net/doc/b610519319.html,man dBars("Fo rmatting" ).Control s(1)
If
.Caption ="请选择版块" Then
.Delete
End With
End Sub
Sub myOnA()
Dim myList As Byte myList= Applicati https://www.360docs.net/doc/b610519319.html,man dBars("Fo rmatting" ) _
.Controls (1).ListI ndex ActiveWor kbook.Fol lowHyperl ink _
Address:= "http://c lub.excel https://www.360docs.net/doc/b610519319.html,/ forum-"& myList& "-
1.html", NewWindow :=True
End Sub 代码解析:AddDropd own过程使用Add方法在工具栏中添加下拉列表控制框控件。
使用Array 函数创建一个数组用于保存下拉列表控制框控件加载列表项所需的元素。第6行代码先运行第19行到第23行的DeleteButt on过程删除可能存在的下拉列表控制框控件,以免重复添加。DeleteButt on过程判断工具栏中第一个控件的Caption属性是否为“请选择版块”,如果是则删除该下拉列表控制框控件。
代码使用Add方法在工具栏中添加下拉列表控制框控件。应用于Command BarControl s对象的Add方法请参阅技巧79。示例中将其参数Type设置为msoContr olDropdo wn,添加的就是下拉列表控制框控件。
第10行代码设置下拉列表控制框控件的Caption 属性,应用于Command BarControl s对象的Caption属性返回或设置指定命令栏控件的题注文字,也可作为默认的“屏幕提示”显示。
码设置改
变下拉列
表控制框
控件的内
容时要运
行的过程
为第24行
到第30行
代码的
myOnA过
程。
myOnA过
程根据下
拉列表控
制框控件
的
ListIndex
属性值打
开Excel
Home论坛
中相应的
版块。
第12行代
码设置下
拉列表控
制框控件
的样式。
Style属性
返回或设
置命令栏
控件的显
示方式,
该属性值
可设置为
表格93?1
所列
MsoComb
oStyle常量
之一。
常量值描述
1显示标签msoCombo
Label
msoCombo
0不显示标签Normal
表格 93?1soComboStyle常量
第15行代
码使用
AddItem方
法将数组
中的元素
添加到下
拉列表控
制框控件
的列表项
中。
第16行代
码将下拉
列表控制
框控件的
ListIndex
属性设置
为1,使其
显示第一
条列表项
。
运行
AddDropd
own过
程,工具
栏如图
93?1所示
图 93?1加下拉列表控制框控件