在工作表中使用 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中的对象、属性、方法、事件有一定认识后再来学习这套教程。
纵观 ActiveX 平台的兴衰史,看开发控件的技术演变
随着Internet/Intranet的普及,人们对网络应用程序开发提出了更高的要求,如:Web页面需要更加丰富生动的多媒体内容;商业应用程序需要更可靠、更加灵活的Web应用软件等。面对当时还不那么完善的HTML技术,开发者只能做些排版布局和简单的表格数据展示,即便刚刚出现的JavaScript,也难以承担复杂的网页动态呈现。
为了解决上述问题,微软提出了ActiveX技术。而 ActiveX 的首次登场,便是在 IE3 中。相比于同期浏览器,IE3增加了不少亮点,包括CSS架构、ActiveX、Java小程序、微软NetMeeting和Internet Mail等。
正是凭借这一版本,微软开启了浏览器的称霸之路,并以此展开了与Netscape、Sun等软件厂商的激烈竞争:
- 从Internet Explorer 3.0(1996)开始,微软支持了在HTML中托管ActiveX控件,此后又通过 ActiveX Documents 允许在 IE 上直接加载office文件。
- 与此同时,Netscape在其导航者2.0版本中推出了NPAPI, 允许native代码运行,其他浏览器很快也跟进支持,促使NPAPI成为一个共通的插件标准,与微软的ActiveX形成竞争关系。
- Sun也推出了JavaApplet,这是一种用Java开发的浏览器嵌入式小应用平台,可以在 Java虚拟机里运行,解决了用户对安全的顾虑,但是性能一般。
在接下来的几年里,微软不断升级迭代 IE 浏览器,并通过打包分发、免费提供、商业条款、网页标准垄断等一系列商业手段,让 IE 的市场份额不断飙升,直到2002年,IE 浏览器的市场占有率一度达到了96%,而 ActiveX 这一微软推广的技术也随之发展起来。
甚至在当时,国内各大银行的网上银行插件基本都是基于ActiveX开发,需要IE浏览器支持,以至于后面出现的国产浏览器也都以双核心、支持网银作为产品卖点。
Microsoft在Windows中内置了许多ActiveX,同时也为后来的安全性问题埋下伏笔,越来越多的恶意软件开始伪装成ActiveX,让 IE 浏览器成为了一个开在用户桌面上的后门,可以被任意利用。
即便微软陆续在IE上增加了屏蔽ActiveX运行的方法,如在2007年加上ActiveX兼容性旗标(Killbit)功能;在IE 9以后的版本加上ActiveX Filtering功能,让IE的浏览者能够自定义是否屏蔽特定的ActiveX组件,这些举措也无法从根本上解决ActiveX的安全问题。
直到2008年,速度快、外观精简的 Google Chrome横空出世,打破并且加速了整个浏览器行业的发展速度,IE的积弊使其在前进的步伐上显得迟缓而无力,即便在随后的IE8~IE10有不少的改进,也未能挽回颓势。最终,微软计划不再更新IE,改而宠幸新一代的浏览器Edge。到了这里,浏览器对ActiveX的支持也已经走向了终结。
从ActiveX平台诞生起,葡萄城控件产品就已经对其提供了支持:
- Spread.NET Com
- ComponentOne ActiveX
上述两款产品满足了用户在ActiveX场景下对报表、电子表格、制图、数据处理、用户界面交互等功能的快速开发需求,节约了开发成本。
随着ActiveX的落幕以及 .NET的出现,葡萄城也推出了更多基于 .NET框架的控件产品,包括 Spread .NET 和 ComponentOne Enterprise,这两款产品主要用于WinForm、ASP.NET、XAML 和 WinRT 等平台下表格数据处理和数据可视化开发需求。
着眼于未来智慧办公的发展,以及前端 JS 框架的更新迭代,葡萄城基于ActiveX和 .NET 时代的经验积累,推出了更适用于Web开发、跨平台应用和云端架构的纯前端控件 SpreadJS 和服务端组件 GrapeCity Documents for Excel。
- SpreadJS,一款基于 HTML5 的纯前端表格控件,兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,充分发挥表格技术的高效生产力工具,满足现代智慧办公场景下数据共享、场景化分析和高效率的业务需求,极大的降低企业研发成本和项目交付风险。
- GrapeCity Documents for Excel (简称:GcExcel), 基于 Java 平台的服务端高性能表格组件,可与纯前端表格控件 SpreadJS 前后端兼容,在服务端批量创建、加载、编辑、打印、导入/导出 Excel 文档,为应用程序提供一整套类 Excel 全栈解决方案。
ActiveX的兴衰,也反映出了软件开发技术的更新迭代,即没有任何一门技术可以一直称霸世界,开发控件本身也要紧随技术发展的潮流,时刻保持良好的系统集成能力与二次扩展能力,聚焦于如何降低企业研发成本和项目交付风险。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。