Microsoft ActiveX控件是从微软的OLE技术发展而来的,曾被称为OLE控件或OCX控件,是微软COM(Component Object Model,组件对象模型)技术的一部分。ActiveX控件提供可重用的小对象,开发者可以将其插入到其他应用程序之中。
基础的ActiveX控件为Windows的标准控件。除此之外,各厂商(用户)也可使用各种编程语言(例如VC、VB、Java等)开发ActiveX控件,这些控件可以完成特定的功能。其他的设计和开发人员可以把其当作预装配组件,用于开发应用程序。
安装应用程序时,如果应用程序提供ActiveX控件,则扩展名为“.OCX” 的控件文件会被复制到相应的文件夹中。例如,Office中的标准ActiveX控件文件即MSCOMCTL.OCX,在安装Office时被复制到安装文件夹的root目录下相关版本的子目录中。
在Word、Excel和PowerPoint的“开发工具”选项卡—“控件”组中均提供了ActiveX控件。也就是说,在Word文档、Excel工作表和PowerPoint演示文稿中都可以加入ActiveX控件。
如果说Word文档内容控件是被解除了响应事件的内容容器,Excel工作表中的表单控件是被管理起来的、方便使用的控件,那么,ActiveX控件就是一组功能完善的控件。因为ActiveX控件具有完备的属性和事件响应机制。
我们以Excel为例介绍ActiveX控件的使用,其在Word和PowerPoint中的使用方法类似。
1.表单控件和ActiveX控件对比
总体上表单控件与ActiveX控件是基本相同的。而表单控件是Excel提供的控件快捷应用方式,所以二者还是存在一些不同。
表24-14 表单控件与ActiveX控件
2.插入ActiveX控件及控件属性
在Word文档和Excel工作表中插入ActiveX控件的方法类似,都需要到“开发工具”选项卡—“控件”组—“插入”按钮下拉列表中的“ActiveX控件”选项组中选择一个控件,然后在页面上进行拖拉。在插入ActiveX控件后,“开发工具”选项卡—“控件”组的“设计模式”按钮将显示为被选中的状态,Office自动切换为“设计模式”。
Word文档和Excel工作表中的ActiveX控件需要在“设计模式”下才能被选中,在非“设计模式” 下,可以使用这些控件。例如,单击按钮控件即触发了一个Click事件。
而在PowerPoint演示文稿的“开发工具”选项卡—“控件”组中只有ActiveX控件,直接选择相关控件,然后在幻灯片的适当位置上拖拉生成即可。
图24-13 ActiveX控件的属性与代码
而幻灯片中的ActiveX控件,在普通视图、大纲视图、幻灯片浏览视图和备注页视图下,都处于“设计模式”,只有在阅读视图和幻灯片放映时,才会响应对这些控件的操作。
在“设计模式”下,选中ActiveX控件,单击“开发工具”选项卡—“控件”组—“属性”按钮,弹出“属性”窗格,如图24-13左图所示。
在“设计模式”下,双击ActiveX控件,或者选中控件后单击“开发工具”选项卡—“控件”组—“查看代码”按钮,弹出如图24-13右图所示的代码编辑窗口。可以看到,一个控件包含多个事件,均可设计一定的VBA程序。
说明:
为了显示方便,示例图中的代码窗口被缩小了。在实际操作中代码窗口要大得多。
属性窗格中的属性选项可以按字母顺序排列,也可按照分类排列。
单击控件对象的右键菜单中的“属性”选项和“代码”选项同样可以打开图24-13中的窗口。
3.通用属性
虽然各种控件各有用途和属性,但有些属性是共同的。表24-15中列出了这些通用属性。
表24-15 通用属性
4.控件返回值
与Excel表单控件类似,在Excel中,许多控件都具有LinkedCell属性,该属性指定链接到该控件的工作表单元格。因此,在设定控件的LinkedCell属性后,不需要编写代码即可获得控件的返回值。
例如,添加一个“数值调节钮”(微调按钮)控件,并将单元格B1指定为其LinkedCell属性。完成此操作后,单元格B1即包含微调的值,单击按钮即可改变单元格B1的值。
当然,也可以在公式中使用链接单元格中包含的值。
5.控件事件响应
一般来说,控件都会响应某种事件,例如“按钮”类型的控件响应Click(单击)事件,而与返回值相关的控件响应Change(改变)事件。在响应事件的VBA模块中,就可以实现对文档、工作表或者演示文稿的某些对象的控制。
6.主要控件说明
(1)命令按钮(CommandButton):单击时响应Click(单击)事件中的代码,实现对特定对象的操作。
(2)组合框(ComboBox):与表单控件的组合框类似,在属性中确定相关属性即可正常工作。如图24-14所示,数据源为H2:H12区域,返回值存放到E2单元格。与列表框不同,组合框中可以直接输入需要的数据。
(www.xing528.com)
图24-14 组合框实例
ListFillRange:组合框中显示的项的工作表范围,即数据源。在属性中直接输入H2:H12区域地址。
LinkedCell:控件返回值(Value)关联的单元格,输入E2地址。可见,ActiveX的组合框直接返回了被选中的项。
如果不用ListFillRange作为数据源,也可以动态添加ComboBox列表中的每一项。特别是对于没有可关联单元格区域的Word文档或者PowerPoint演示文稿。此时,只有在某个上一级对象激活、打开或者初始化的事件中,才能用ComboBox的AddItem方法来完成数据的
加载。例如,对Word文档,可以利用“Document_Open( )”的事件来给其中的ComboBox或ListBox
加载数据项,返回值则可以利用Value属性获得。
(3)列表框(ListBox):其属性设置、返回方式与组合框完全相同。但是,列表框的返回值只能从列表中选择。
(4)复选框(CheckBox):用于决定二选一的“是/否”“真/假”等。返回的真假值被放入LinkedCell单元格。
(5)文本框(TextBox):往往放置一段说明性文字。一般不需要进行操作或返回值。常用属性有:
AutoSize:基于文本的多少决定是否自动调整文本框的大小。
IntegralHeight:如为True,则在具有纵向滚动条时,自动调整文本框的高度以显示整行文本。如为False,则即使有纵向滚动条,也不会按整行滚动文本。
MaxLength:文本框允许输入的最多字符数。如果为0,则无限制。
MultiLine:如为True,则允许显示多行文本。
ScrollBars:选择滚动条的形式,如纵向、横向、双向或无。
TextAlign:文本对齐方式。
WordWrap:决定是否允许自动换行,缺省为True。(6)滚动条(ScrollBar):与表单控件的滚动条的设置类似。
LinkedCell:与控件返回值(Value)关联的单元格。
Min:控制的最小值。
Max:控制的最大值。
SmallChange:步长。
LargeChange:页步长。
Value:当前值,即返回值。
(7)数值调节钮(SpinButton):数值调节钮与表单控件的数值调节钮相似,其属性与滚动条相似。
(8)标签(Label):放置简单内容的标签文本。
(9)选项按钮(OptionButton):往往有多个组合,方便用户在一组选项中进行选择。
GroupName:确定组合中数个选项按钮的组名称。
LinkedCell:被选中时,关联单元格为True。否则,为False。
组合操作:需同时选中多个选项按钮,然后在按钮上单击鼠标右键,再在右键菜单中选择组合。组合后,多个选项按钮就会自动实现统一互动。如图24-15所示。
图24-15 选项按钮实例
(10)图像(Image):用于呈现一张图片。
AutoSize:如果为True,则控件根据图片大小自动调整大小。
Picture:在指定文件夹中选择一张图片或者直接粘贴一张图片。
(11)切换按钮(ToggleButton):表示某个状态的开/合。按下为合上状态,LinkedCell返回True;松开为断开,LinkedCell返回False。
(12)其他控件:单击后,弹出已安装并注册了的其他ActiveX控件的选择窗口。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。