在工具栏上添加下拉列表框

技巧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加下拉列表控制框控件

相关文档
最新文档