如何自动设置宏安全级别.docxVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何自动设置宏安全级别

如何自动设置宏安全级别用VBA开发Excel的自定义功能面临一个问题,当文件移植到其他电脑上时,如果这个电脑Excel没有启用宏,宏就被禁用了,起不到作用,因此就有人想到利用其他程序操作注册表来修改,对于这个想法,从安全上来讲显然是行不通的,因为如果其他程序能轻松修改宏是否启用,那充斥的宏病毒就相当简单相当多了,可能造成各种意想不到的问题,会演变成微软的漏洞被堵住。网上流行的针对以前各Office版本自动启动宏而不被宏安全检查的代码在微软不断更新的版本中均已被堵死了。虽然宏不能自动启用,但是可以修改在禁用宏条件下执行宏的安全提示,也即宏的安全级别,这个概念可以这样理解:虽然宏是禁用的,但是当打开带有宏的文件时会给你一些选择,包括完全禁用不提示任何信息、禁用但是给出提示、禁用无数字签名的宏,如果修改安全级别,就可以在完全禁止的情况下留一丝希望。具体修改安全级别一般认为不能通过VBA自动进行,也就是VBA执行之前先修改安全级别,因为安全级别就是针对VBA自己的,当自己还没取得执行的权限时,显然不可能先去修改这个级别,只能通过其他手段进行。修改地方:Office注册表表现特征:HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security\VBAWarningsHKEY_CURRENT_USER\Software\Microsoft\Office\ 12.0 \Excel\Security\AccessVBOMHKEY_CURRENT_USER\Software\Microsoft\Office\ 12.0 \Excel\Security\Level操作方式:注册表读写采用任何一门语言都可以,本人以VBS为例,随一般都认为其只是一种脚本语言,但是很简单易用。附例:Dim WshSet Wsh = CreateObject(Wscript.Shell) RegStr1 = HKEY_CURRENT_USER\Software\Microsoft\Office\ 12.0 \Excel\Security\VBAWarnings RegStr2 = HKEY_CURRENT_USER\Software\Microsoft\Office\ 12.0 \Excel\Security\Levelret = WSH.RegRead(RegStr2) 读取当前安全级别MsgBoxExcel当前宏安全级别为: retret=Wsh.RegWrite(RegStr1, 4, REG_DWORD)VBA安全级别值1-4分别对应:低,中,高,非常高ret=Wsh.RegWrite(RegStr2, 4, REG_DWORD)ret = WshRegRead(RegStr2)MsgBoxExcel设置后的宏安全级别为: retSet WSH = Nothing以上是针对Office2007版本,其中Office2003为11.0,Office2010为13.0。效果如下图:

文档评论(0)

aqlsxc66163 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档