文档详情

Excel中的窗体控件和ActiveX控件.doc

发布:2019-09-04约3.27千字共4页下载文档
文本预览下载声明
Excel中的窗体控件和ActiveX控件 2009年 评论 发表评论 Excel中有两种不同的控件。一种是窗体工具条控件(Forms toolbar controls),通过点击菜单“视图”-“工具栏”,在弹出菜单上选择“窗体”,将出现“窗体”工具条控件窗口。另外一种是ActiveX控件,通过点击菜单“视图”-“工具栏”,在弹出菜单上选择“控件工具箱”(也可以选择“Visual Basic”,然后再在工具栏上选择“控件工具箱”),将出现“控件工具箱”窗口。 窗口工具条控件是Excel5和Excel95留下来的东西(在Excel 97后的版本中,添加一个Dialog Sheet后,将可以看到这个窗体工具条窗口),从Excel 97开始,Dialog Sheet被UserForm代替,并且开始使用ActiveX控件。 从某些角度来讲,窗体控件甚至比ActiveX控件更有优势。 如果你需要在Chart工作表中添加控件,只能使用窗体工具条控件。 更加方便使用VBA代码创建窗体控件以及定义事件过程。 窗体控件的事件过程可以放在标准模块,可以使用任何有效的VBA过程名称,可以在控件创建之前就创建事件过程。 可以给多个控件赋于一个相同的过程。 可以使用Application.Caller来获取窗体控件的名称。 窗体控件比ActiveX控件简单,基本上只有一个Click事件。而ActiveX控件可以响应丰富的事件,ActiveX控件的事件只能放在控件所在的类模块(工作表模块)或窗体模块。过程名称由控件名和事件名称组成。如果你在控件不存在的时候就创建这个控件的事件过程,然后再在代码中引用这个控件,将会出现编译错误,所以必须使用代码创建事件过程。 在VBA中控制窗体控件的方法有点不同,可以使用对象名称,但这些对象名称在对象浏览器中被隐藏,这样输入代码时没有方法和属性提示(你可以在“对象浏览器”的“类”一栏中单击右键,然后选择“显示隐含成员”查看这些窗体控件)。另外有一个简单的方法就是所有的窗体控件都用DrawingObjects来表示。 下面就是窗体控件的示例代码,相对应的控件从字面上很容易理解。对于复选框和选项按钮,赋值xlOn给Value属性表示选择,赋值xlOff则表示取消选择。下拉和列表框的Value属性则表示选择的第几个项目,从1开始。 Sub ChangeControls() Sheet1.Labels(标签 1).Caption = 我是标签1 Sheet1.Buttons(按钮 2).Caption = 点击我吧! Sheet1.CheckBoxes(复选框 3).Value = xlOn Sheet1.OptionButtons(选项按钮 4).Value = xlOn Sheet1.ListBoxes(列表框 5).Value = 2 Sheet1.DropDowns(下拉框 6).Value = 4 Sheet1.DrawingObjects(标签 1).Caption = 我是标签1 Sheet1.DrawingObjects(按钮 2).Caption = 点击我吧! Sheet1.DrawingObjects(复选框 3).Value = xlOn Sheet1.DrawingObjects(选项按钮 4).Value = xlOn Sheet1.DrawingObjects(列表框 5).Value = 2 Sheet1.DrawingObjects(下拉框 6).Value = 4 End Sub 这个是使用VBA代码在工作表中添加窗体控件的例子。 Sub InsertDropDown() Dim ctl As DropDown 声明下列列表变量 Sheet2.Select Cells(3, 3).Select With ActiveCell 在活动单元格位置创建下列列表 Set ctl = Sheet2.DropDowns.Add(.Left, .Top, .Width, .Height) 给下拉列表指定事件过程 ctl.OnAction = EnterData ctl.AddItem Item 1 ctl.AddItem Item 2 ctl.AddItem Item 3 ctl.AddItem Item 4 ctl.AddItem Item 5 ctl.ListIndex = 1 第一个项目的ListIndex是0 End With End Sub Sub EnterData() 通过Application.Caller来获得下拉列表对象 With S
显示全部
相似文档