VBA的确是个很不错的编程工具,寄生在OFFICE内,无需安装庞大的开发环境,即开即用,方便灵活,能实现的事情也很多,但毕竟VBA是微软停止更新维护将近20年的一种语言,计算机的世界发展速度有多快大家有目睹,今天抛砖引玉,拿几个加密类函数来讲说一下VSTO较VBA开发的一些优势所在。
文章出处说明
原文在简书上发表,再同步到Excel催化剂微信公众号或其他平台上,文章后续有修改和更新将在简书上操作, 其他平台不作同步修改更新,因此建议阅读其他出处的文章时,尽可能跳转回简书平台上查看。
题外话
本人也是从Excel的VBA语言入门了编程世界的,然后很偶然的机会接触到VSTO,并且在一位热心的网友一路的帮助下,算是入门了C#语言,现在可以灵活地用C#实现自己想要的一些小功能(大部分是抄百度和google),然后可以在开源世界里找各式各样的类库轮子搬到自己的项目中来。
VBA要实现利用外界的资源这点,估计比较难,一般其他软件厂商只提供主流的编程语言的API接口或SDK。就算微软自己的.Net Framework类库集,也只能在.Net语言中使用,而不能供VBA所使用。
例如今天介绍的几个加密函数,在.Net Framework类库里,直接有现成的代码,几乎可以直接调用的程度,对于一些非OFFICE环境内的功能实现来说,使用VSTO开发或C#、VB.Net开发,开发效率还是有很大的提升。
一般像我这种水平的人,只需要不断地百度或google,就可以拿到现成的东西直接复用,VBA毕竟是业务开发者使用的编程语言,同时又是一个官方停止更新语言,仍然使用VBA做一些复杂的需求,有点吃力不讨好。
回到正题,加密函数介绍
今天介绍的加密函数有 生成MD5和RSA方式的加解密函数,具体这些加密原理我也不懂,我只负责搬运和它能够实现到所需的功能即可。
加解密函数
函数示例如下:因是给VBA开发者用,不多解释,大家都会百度。
在VBA代码中调用加解密函数方法
说到重点,VBA开发者可能更多场景还要回到自己在VBA代码中想要调用其他语言开发好的函数,例如此篇的自定义函数。
调用方法为:使用Application.Run方法
VBE代码编写
得到的结果一样
能够使用Application.Run来调用的前提是自定义函数的加载项已经被加载,即xll文件已经被Excel加载进来。如果使用代码来加载xll,也不复杂,使用AddIns.Add 方法,如下图所示
总结
在我过往发表的众多自定义函数里,大部分直接照搬了.Net Framework类库里的函数,让其能够在Excel环境以自定义函数的形式来使用,当中也收到许多反馈说能用自定义函数的人都自己写VBA代码,不会写代码的人也没必要用自定义函数,文件分发出问题等等如此这般的回复。反正个人觉得挺可惜的,人的见识不广时,依仗自己有限的知识体系,来给自己盖一个绝对性的结论,以至很多时候还在低效地运行着。
写此篇文章没有贬低VBA的作用,只是当有更好的东西时,花一点点学习成本去了解它,然后唯我所用,何尝不是一件美好的事情。
最后抛一个刚刚接触到的知识点,用xll的方式开发自定义函数,可以使用多线程功能,函数性能更佳,当然前提是函数符合多线程规范下。 https://docs.microsoft.com/en-us/office/client-developer/excel/multithreaded-recalculation-in-excel
系列文章
一文带你全面认识Excel催化剂系列功能 安装过程详解及安装失败解决方法 第1波-工作表导航 第2波-数字格式设置 第3波-与PowerbiDesktop互通互联 第4波-一大波自定义函数高级应用,重新定义Excel函数的学习和使用方法 第5波-使用DAX查询从PowerbiDeskTop中获取数据源 第6波-导出PowerbiDesktop模型数据字典 第7波-智能选区功能 第8波-快速可视化数据 第9波-数据透视表自动设置 第10波-快速排列工作表图形对象 第11波-快速批量插入图片 第12波-快速生成、读取、导出条形码二维码 第13波-一键生成自由报表 第14波-一键生成零售购物篮分析 第15波-接入AI人工智能NLP自然语言处理 第16波-N多使用场景的多维表转一维表 第17波-批量文件改名、下载、文件夹创建等 第18波-在Excel上也能玩上词云图 第19波-Excel与Sqlserver零门槛交互-查询篇 第20波-Excel与Sqlserver零门槛交互-数据上传篇 第21波-Excel与Sqlserver零门槛交互-执行SQL 第22波-Excel文件类型、密码批量修改,补齐Power短板 第23波-非同一般地批量拆分工作表 第24波-批量发送邮件并指点不同附件不同变量 第25波-小白适用的文本处理功能 第26波-正确的Excel密码管理之道 第27波-Excel工作表设置快捷操作 第28波-工作薄瘦身,安全地减少非必要冗余 第29波-追加中国特色的中文相关自定义函数 第30波-工作表快捷操作(批量创建、命名、排序、工作表目录) 第31波-数量金额分组凑数功能,财务表哥表姐最爱 第32波-空行空列批量插入和删除 第33波-报表形式数据结构转标准数据源 第34波-提取中国身份证信息、农历日期转换相关功能 第35波-Excel版最全单位换算,从此不用到处百度找答案 第36波-新增序列函数用于生成规律性的循环重复或间隔序列 第37波-把Sqlserver的强大分析函数拿到Excel中用 第38波-比Vlookup更好用的查找引用函数 第39波-DotNet版的正则处理函数 第40波-工资、年终奖个人所得税计算函数 第41波-文件文件夹相关函数 第42波-任意字符指定长度随机函数 第43波-文本处理类函数增强 第44波-可见区域复制粘贴不覆盖隐藏内容 第45波-逻辑判断函数增强 第46波-区域集合函数,超乎所求所想
关于Excel催化剂
Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!
Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!
Excel催化剂插件下载链接:https://pan.baidu.com/s/1kDtFkM5KZ4R1lAO0TO07AA
因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行,且需可连接外网的方式实现自动更新机制,若下载安装过程中有任何疑问或需要离线版安装等,尽量不单独私聊询问,加QQ群可高效解决(群内已汇集了VSTO开发、Powerbi技术、Sqlserver商业智能等方面的国内顶尖大牛人物,进群的好处不用多说了)