Excel中的窗体控件和ActiveX控件.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:4 大小:67KB 金币:14 举报 版权申诉
预览加载中,请您耐心等待几秒...

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

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

预览

在线预览结束,喜欢就下载吧,查找使用更方便

14 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Excel中的窗体控件和ActiveX控件2009年1月21日HYPERLINK"http://www.vbafan.com/2009/01/21/excel-form-controls-and-activex-controls/"\l"comments"评论HYPERLINK"http://www.vbafan.com/2009/01/21/excel-form-controls-and-activex-controls/"\l"respond"发表评论Excel中有两种不同的控件。一种是窗体工具条控件(Formstoolbarcontrols),通过点击菜单“视图”->“工具栏”,在弹出菜单上选择“窗体”,将出现“窗体”工具条控件窗口。另外一种是ActiveX控件,通过点击菜单“视图”->“工具栏”,在弹出菜单上选择“控件工具箱”(也可以选择“VisualBasic”,然后再在工具栏上选择“控件工具箱”),将出现“控件工具箱”窗口。窗口工具条控件是Excel5和Excel95留下来的东西(在Excel97后的版本中,添加一个DialogSheet后,将可以看到这个窗体工具条窗口),从Excel97开始,DialogSheet被UserForm代替,并且开始使用ActiveX控件。从某些角度来讲,窗体控件甚至比ActiveX控件更有优势。如果你需要在Chart工作表中添加控件,只能使用窗体工具条控件。更加方便使用VBA代码创建窗体控件以及定义事件过程。窗体控件的事件过程可以放在标准模块,可以使用任何有效的VBA过程名称,可以在控件创建之前就创建事件过程。可以给多个控件赋于一个相同的过程。可以使用Application.Caller来获取窗体控件的名称。窗体控件比ActiveX控件简单,基本上只有一个Click事件。而ActiveX控件可以响应丰富的事件,ActiveX控件的事件只能放在控件所在的类模块(工作表模块)或窗体模块。过程名称由控件名和事件名称组成。如果你在控件不存在的时候就创建这个控件的事件过程,然后再在代码中引用这个控件,将会出现编译错误,所以必须使用代码创建事件过程。在VBA中控制窗体控件的方法有点不同,可以使用对象名称,但这些对象名称在对象浏览器中被隐藏,这样输入代码时没有方法和属性提示(你可以在“对象浏览器”的“类”一栏中单击右键,然后选择“显示隐含成员”查看这些窗体控件)。另外有一个简单的方法就是所有的窗体控件都用DrawingObjects来表示。下面就是窗体控件的示例代码,相对应的控件从字面上很容易理解。对于复选框和选项按钮,赋值xlOn给Value属性表示选择,赋值xlOff则表示取消选择。下拉和列表框的Value属性则表示选择的第几个项目,从1开始。SubChangeControls()'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=4Sheet1.DrawingObjects("标签1").Caption="我是标签1"Sheet1.DrawingObjects("按钮2").Caption="点击我吧!"Sheet1.DrawingObjects("复选框3").Value=xlOnSheet1.DrawingObjects("选项按钮4").Value=xlOnSheet1.DrawingObjects("列表框5").Value=2Sheet1.DrawingObjects("下拉框6").Value=4EndSub这个是使用VBA代码在工作表中添加窗体控件的例子。SubInsertDropDown()DimctlAsDropDown'声明下列列表变量Sheet2.SelectCells(3,3).SelectWithActiveCell'在活动单元格位置创建下列列表Setctl=Sheet2.DropDowns.Add(.Left,.Top,.Width,.Height)'给下拉列表指定事件过程ctl.OnAction="EnterData"ctl.AddItem"Item1"ctl.AddItem"Item2"ctl.AddItem"Item3"ctl.AddItem"Item4"ctl.AddItem"Item5