Excel ActiveX 控件到底有啥用?如此美貌的下拉菜单,非它不可
Excel 中的 ActiveX 控件,很多同学都不知道要怎么用,甚至连表单控件也有很多人没用过。
ActiveX 控件和表单控件的组件看上去都差不多,二者到底有什么区别呢?
表单控件我写过很多,比如我在 VBA 的案例教程中几乎每次都会使用表单控件。表单控件还有个常见用途是控制动态图表。以下是部分表单控件的教程,大家可以学习一下。
上述案例如果用 ActiveX 控件来做,将会更加简单,因为 ActiveX 可以直接返回文本,而表单控件只能返回数值,还需要通过公式匹配出数值对应的文本。
今天我要教大家用 ActiveX 控件制作一个颇具个性化的下拉菜单,这恰恰是 ActiveX 控件的优势,因为表单控件无法自定义外观。
开始案例教学前,先了解一下表单控件和 ActiveX 控件分别能做什么,不能做什么。
可以:
- 表单控件可以在不使用 VBA 代码的情况下引用单元格数据并与其进行交互。
- 可以使用表单控件来运行宏。
不可以:
- 表单控件不能添加到用户表单、不能控制事件,也不能修改表单控件来运行 Web 脚本。
- 表单控件返回的结果是数值,而不能返回文本。
可以:
- ActiveX 控件可用于工作表表单(使用或不使用 VBA 代码都可以)和 VBA 用户表单。
- ActiveX 控件允许自定义外观、行为、字体和其他特性,具有很大的灵活性。
- 我们还可以控制与 ActiveX 控件进行交互时发生的不同事件;也可以编写宏来响应与 ActiveX 控件关联的事件。
- ActicveX 控件可以直接返回所选列表中的文本内容。
不可以:
- 无法从用户界面将 ActiveX 控件添加到图表工作表,也无法将其添加到 XLM 宏工作表。
- 不能将宏分配为直接从 ActiveX 控件运行,而表单控件则可以。
请注意:并非所有 ActiveX 控件都可以直接用于工作表;有些 ActiveX 控件只能用于 VBA 用户表单。 如果向工作表中添加这些特殊 ActiveX 控件的话,Excel 会显示消息“不能插入对象”。
用 ActicveX 控件在 F2 单元格制作姓名下拉菜单,筛选姓名,即可出现对应的分数。效果如下图 2 所示。
1. 选择菜单栏的“开发工具”–>“插入”–> 选择“ActiveX 控件”区域的“组合框”
2. 在 F2 单元格勾勒出下拉框的大小
3. 选中 ActiveX 组合框 –> 右键单击 –> 在弹出的菜单中选择“属性”
4. 在弹出的“属性”对话框中进行以下设置:
- LinkedCell:输入“F2”
- ListFillRange:输入“A2:A10”
5. 选择菜单栏的“开发工具”–> “控件”区域中的“设计模式”,退出设计模式。
现在点击下拉框旁边的小箭头,就会出现姓名列表。
从前面对 ActiveX 控件的介绍中可以知道,它有别于表单控件的一点是:可以直接返回文本内容,而表单控件只能返回数字。
从下图可以看出,选中 F2 单元格,即控件值所链接的单元格,其内容就是下拉菜单中的文本。
这正是 ActiveX 控件的优势之一,也因此使得接下来的分数查询变得很简单,只需使用大家非常熟悉的 vlookup 即可。
6. 在 G2 单元格中输入以下公式,向右拖动复制公式:
=VLOOKUP($F$2,$A:$D,COLUMN(B1),0)
请注意单元格的绝对和相对引用。
至此,ActiveX 控件下拉菜单就制作好了。
前面介绍过,ActiveX 控件的灵活之处在于可以自定义外观,所以接下来我们还可以做一些美化。
7. 选择菜单栏的“开发工具”–> “控件”区域中的“设计模式”,启用设计模式。
8. 选中 ActiveX 控件 –> 右键单击 –> 在弹出的菜单中选择“属性”
9. 在弹出的“属性”对话框中,点击 BackColor 最右边的小箭头 –> 选择所需的背景色
10. 点击 Font 最右边的按钮
11. 在弹出的“字体”对话中设置所需的字体、字形和大小等,比如本例中我将字体改为中文常用的“微软雅黑”–> 点击“确定”
12. 设置完毕后关闭“属性”对话框 –> 再次选择菜单栏的“开发工具”–> “控件”区域中的“设计模式”,退出设计模式,一个极具个性化的下拉菜单就制作完成了。
以下就是实际演示效果。
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。
学习VB编程第82天 ACTIVEX控件
今天学习的是ActiveX控件,ActiveX控件本质上是一段可重复使用的代码和数据。ActiveX控件是由Microsoft公司主导开发的一种新的编程技术,该技术的目的是让对象模型完全独立于编程语言。也就是说,通过任何一种编程语言编写的Activex控件,在其他编程语言中也可以方便地调用。例如,用Visual Basic编写的Activex控件在Visual C++中也可以调用。在一定程度上,用户可以将ActiveX技术看做是构建应用程序的组件,可以通过ActiveX控件给出的属性、方法及事件等接口来完成应用程序功能的设计。Activex控件在Visual Basic 6.0中可以很方便地加载,加载到工具箱中后即可如同使用内部控件一样使用ActiveX控件。
一、创建ActiveX控件的步骤
Visual Basic 6.0提供了用于创建ActiveX控件的向导。创建ActiveX控件的共有六个步骤:
第一步:创建一个“ActiveX控件”工程。
第二步:在窗体上设计ActiveX控件的外观。
第三步:为ActiveX控件编写代码。
第四步:定制ActiveX控件的属性、方法和事件。
第五步:生成ActiveX控件。
第六步:在系统中注册ActiveX控件。
案例:做一个activex数字时钟控件,以显示当前时间。
(一)第一步:启动Visual Basic 6.0,在弹出的“新建工程”对话框中选择Activex控件”。单击“确定”按钮,即可创建一个ActiveX控件工程。用户也可以通过选择“文件”→“新建工程”命令,来打开“新建工程”对话框。然后选择ActiveX控件,单击“确定”按钮完成ActiveX工程的创建。
(二)第二步:在创建完成ActiveX控件工程后,接下来应该根据需要来设计ActiveX控件的外观。此时,整个ActiveX控件工程中包含了以下三部分。一个名为“UserControl1”的UserControl对象、“工程窗口”及“UserControl1\”的属性页。
(三)第三步:为ActiveX控件添加代码。首先获取系统时间,然后通过label控件的caption值将时间值引入控件中。在定时器的Timer事件中每隔一秒刷新显示一次时间。
Private Sub Timer1_Timer()
label1.Caption = Timer()
End Sub
(四)第四步:为ActiveX控件添加属性、方法和事件。Visual Basic 6.0中为控件添加属性、方法和事件可以有如下两种方式。方法一:通过“工程”→“添加用户控件”命令,选择“VB Activex控件界面向导”选项,借助于向导来添加属性、方法和事件,如图所示。用户只需按照提示进行,根据自己需要选择属性、方法和事件,即可完成添加任务。
方法二:通过手工添加控件的属性、方法和事件。选择“工具”→“添加过程”命令,在弹出的“添加过程\”对话框中根据需要添加代码框架。然后通过手工编写代码的方式添加控件的属性、方法和事件。下面主要介绍手工为控件添加属性、方法和事件的方法。步骤如下。
(五)第五、六步:生成ActiveX控件。数字时钟的ActiveX控件设计后,选择“文件”一“生成工程1.oCx”命令,如图所示,即可生成“工程1.ocx”文件。在生成ocx格式文件的同时,VisualBasic 6.0会自动注册该控件。
二、使用ActiveX控件
(一)在控件工具栏中单击右键,选择部件,然后在浏览中添加我们刚刚创建的工程1.ocx。
(二)新建窗体中直接将控件拖动到窗体中即可应用。效果详见视频。
视频加载中…
在工作表中使用 ActiveX 控件
【分享成果,随喜正能量】用最好的自己,活出最好的生命状态,不必要事事都依靠别人,下雨天还是要自己多准备,懂得照顾自己,懂得爱护自己。一个人的人生,会因为努力而有意义,人可以平凡,但不可以平庸。
《VBA之Excel应用》是非常经典的,是我推出的第七套教程,定位于初级。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是“VBA之EXCEL应用”的第十五章“ActiveX控件(ActiveX Controls)”的第1节:在工作表中使用 ActiveX 控件
在这套教程的开始部分,我曾经讲解过在工作表界面中添加一个控件按钮,然后点击这个按钮就可以执行我们的一些自定义操作,其实这个按钮控件就是一个ActiveX 控件,如下面的工作表界面:
这节中我们先来认识这个控件。
ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。
ActiveX控件是Microsoft的ActiveX技术的一部分。ActiveX控件是可以在应用程序和网络中计算机上重复使用的程序对象。创建它的主要技术是Microsoft的ActiveX技术,其中主要是组件对象模型(COM)。ActiveX控件可以以小程序下载装入网页,也可以用在一般的Windows和Macintosh应用程序环境中。一般说来,ActiveX 控件代替了原先的OCX,它与JAVAapplet的概念和功能差不多。ActiveX控件可以由不同的可以识别Microsoft的COM技术的语言开发,它是一个组件或自包含的软件包,它可以在同一个或分布式的计算环境中开发或使用。COM的分布式支持技术称为DCOM。在实现中,ActiveX控件是一个动态链接库(DLL)模块,它包括在容器(包括COM程序接口的应用程序)当中。这种可重复使用的组件技术可以加快开发速度和质量,Windows 95 /NT应用程序开发程序如Powerbuilder和Access都利用了ActiveX控件。
我们在工作界面点击“开发工具”(Developer tab),点击“插入”,这个时候会出现下面的界面:
我们点击其中的命令按钮,然后回到工作表界面,在工作表上拖动命令按钮,这个时候工作表上就会出现这个控件了:
右击刚刚添加的按钮(确保选择了设计模式)。然后单击“属性”来更改控件的标题和名称。
更改命令按钮的标题为“应用蓝色文本颜色”。现在,我们将保留CommandButton1作为命令按钮的名称:
我们右击command按钮(确保选择了设计模式),选择“查看代码”
这时就会进入VBE窗口:
我们在其中添加下面的代码:
Selection.Font.Color = vbBlue
如下截图:
回到工作界面,确保选择范围A1:A7,确保退出设计模式。
点击命令按钮:
这个时候,选择范围的文本就变成了蓝色。
以上我以命令按钮为例,讲解了ActiveX 控件的添加、修改、应用,其他的控件与此类似,在后面的内容中会逐一讲解。
今日内容回向:
1) 如何向工作表中添加ActiveX 控件?
2) 如何修改ActiveX 控件的标题(名称一般不做修改)?
3) 如何给ActiveX 控件添加代码?
本讲内容参考程序文件:工作簿15.xlsm
分享成果,随喜正能量
- VBA的学习教程(初级、中级、高级):
VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了八部VBA专门教程,学习顺序七、一(或者四)、三、二、六、五;或者七、八。其中七,一(或者四)是初级;三,二,八是中级;六,五是高级:
第一套:VBA代码解决方案 是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,提供的程序文件更是一座不可多得的代码宝库,是初学及中级人员必备教程;目前这套教程提供的版本是修订第二版,程序文件通过32位和64位两种OFFICE系统测试。
第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。目前这套教程提供的是修订第一版教程,程序文件通过32位和64位两种OFFICE系统测试。
第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。
第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程(修订一版)的视频讲解,视频更易接受。
第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。
第六套教程:VBA信息获取与处理,这是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。
第七套教程:VBA之EXCEL应用 这是一部初级教程这部教程共三册,从从创建宏、对话框、工作簿和工作表对象、单元格对象等基础内容讲起,到循环结构、错误处理、字符串操作、日期和时间、事件、数组应用,函数过程等方面,一直讲解到控件和窗体对象的应用都是我们提高自己EXCEL水平的必须。
第八套教程:VBA之WORD应用 是围绕“面向对象编程”展开的讲解,让大家充分认识Word中VBA的对象,以及对象的属性、方法及利用。教程共分三册,十六章,其中前十五章是各种对象属性、方法的讲解,每节都有专门的实例说明这些属性方法的具体应用,最后一章是结和具体应用场景的讲解,详细讲解了二十八个实际工作中有代表性的实例,紧扣word数据的批量处理,发挥VBA的长处。本套教程实例众多,大家可以拿来即用,或者修正后加以利用。由于这套教程是围绕“面向对象编程”来展开,建议大家先学《VBA之Excel应用》,对VBA中的对象、属性、方法、事件有一定认识后再来学习这套教程。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。