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

采用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开发)。对普通使用者来说,这样就足够了。当然,如果你开发的东西很值钱,可以考虑购买商业的加壳软件对你的作品进行保护。

posted on 2013-05-22 23:16 Charltsing 阅读(...) 评论(...) 编辑 收藏

导航