九、制作密码登录框 现有情况: 1.以前采用的Excel4.0宏表方式,在Excel2003实现禁用宏就关闭工作簿,但在EXCEL2007/2010中则可以禁用宏并打开。 2.Excel2010/2007的工作簿打开密码几乎牢不可破,可以设置打开密码、修改密码、工作表密码。 3.文本框控件TextBox,可以设置PasswordChar 属性利用其他字符代替输入内容的显示效果,在制作密码输入的时候防“目测”有作用。 4.可以实现打开工作簿的时候执行指定事件。 5.可以设置只显示窗体,不显示工作簿窗口,可以实现点击窗体“关闭按钮”则关闭工作簿。 6.可以实现点击关闭工作簿的时候,执行指定事件过程。 7.可以使用代码深度隐藏、取消隐藏工作表。 8.可以添加VBA工程密码。 综合以上情况,我们可以有这样一个思路: 1. 使用Excel2007/2010特有格式XLSM格式保存,设置打开密码、修改密码、工作表保护、VBA工程密码。 2. 在Thisworkbook模块写下: (1)打开工作簿启用宏,即运行窗体并隐藏工作簿界面。注意给TextBox控件设置PasswordChar 属性,避免“偷窥”密码。 (2)按登录窗体输入内容判断取消对应权限的工作表保护、取消深度隐藏。要先取消工作表保护,才执行取消隐藏,否则出错。 (3)点击关闭的时候,执行深度隐藏工作表,并添加工作表密码,执行保存(注意:如果对方无修改权限密码,以只读打开,代码执行保存工作簿会导致出错,因此关闭事件代码要添加On Error Resume Next这一句)。 实现以上过程,基本能实现以下效果: 无密码不能打开;又因带打开密码的工作簿无法破解VBA工程密码,因此无法从代码中获取密码信息。 不启用宏就无法正常查看隐藏数据,只能按登录用户查看指定内容。 这方法只能对一些对excel了解比较少的人会起作用。但对excel稍微了解的朋友就知道有什么漏洞,如何破解了。 好比卖密码锁的人,不会宣传如何破解自己密码锁的话,所以我也不说明如何破解,各位也自己知道好了。 破解方法不普及的话,还能稍微解决excel2010下的宏对话框“安全”登陆。 最后奉献各位一句,除了excel2010/2007的打开密码是比较安全的,其他浮云。要更加安全,还得借助其他程序。 |