采用XLL封装工作表函数的演示,确保工作表上的公式不暴露给用户

近期不少朋友询问关于如何使用XLL加载宏来确保工作表上的公式不暴露给用户的问题。

我做了一个演示,演示了以下功能:
1、如何自动通过VBA代码加载XLL
2、使用XLL自定义函数代替工作表函数
3、在文件关闭时注销自定义函数(通过封装的函数实现)。
4、文件启动后,在Excel的加载项列表里面看不到演示的加载宏。
5、自定义函数里面,也看不到演示的三个函数。只能看到暴露给用户的几个其他函数(这几个函数与本演示无关)。

该文件经测试在2003、2007、2010下正常。其余版本未测试

XLL封装工作表函数的演示





高频问题:
1、XLL封装与普通的VB DLL封装相比,有什么优势?
答:普通的DLL需要注册,XLL不需要提前注册,部署方便。而且XLL可以实现自动升级,DLL如果更新文件需要重新在注册表中卸载老版本注册新版本。

2、XLL封装与COM加载项相比,有什么优势?
答:XLL与COM相比,并无优势,而且后者在未来发展比XLL更好。但由于ExcelDna项目的出现,XLL的开发可以采用.Net语言,开发效率提高10倍,适合初学者。Com加载项的开发对初学者来说,还是不太适合的。此外,采用Com加载项开发自定义函数,需要用VBA代码加个壳才能被当作自定义函数使用。

3、如何开发XLL加载项
答:标准的XLL开发需要微软的XLL SDK,并使用C、C++语言进行,开发周期长。本人建议采用ExcelDna项目通过C#开发,写一个简单的加载宏只需要几分钟,最多半小时。具体请参考 http://club.excelhome.net/thread-964658-1-1.html

4、对本论坛的会员来说,开发XLL有什么困难?
答:最大的困难是需要重新学习.Net语言。如果有编程基础,C#入门需要7天。如果没编程基础...,嗯,俺得想想...

5、XLL可以保证源码不外泄或者算法不被破解吗,采用.Net语言开发XLL,源码会不会外泄?
答:任何语言开发的软件都可能被破解,问题在于破解的投入与产出是否匹配。如果你采用C、C++来开发XLL,一般不必担心被破解的问题。如果采用ExcelDna项目开发,我的建议是不要使用.dna文件进行明码的开发,可以考虑使用DLL+混淆(用VS2010开发)。对普通使用者来说,这样就足够了。当然,如果你开发的东西很值钱,可以考虑购买商业的加壳软件对你的作品进行保护。

©著作权归作者所有:来自51CTO博客作者Charltsing的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. thinkphp6的Service的简明使用介绍
  2. 6个常用的Java开发技巧,快收藏吧!
  3. 3-24(类与对象的自我总结)
  4. 函数计算持续交付入门:云效+FC实现 简单IP查询工具
  5. 局部路径规划算法——人工势场法
  6. 基于RBF神经网络的函数曲线拟合
  7. 10+年数据库开发工程师带你深入理解MySQL索引
  8. 2021年最全C/C++免费开发工具和教程(全部免费学习)
  9. 培训web前端开发无法胜任工作怎么办?

随机推荐

  1. Android香露刀之SeekBar之双管齐下
  2. Android优势劣势
  3. Android设计模式系列(9)--SDK源码之适配
  4. Android中ContentProvider详解
  5. [置顶] 关于Android NDK中如何调用第三方
  6. 3.4、Android Studio 创建Android 库
  7. Android流媒体播放器
  8. 客户端微信分享
  9. 《Android和PHP开发最佳实践》一2.2 And
  10. Android程序员必看之Android六大优势