Dzwebs.Net

撰写电脑技术杂文十余年

用vba代码来宏的安全性为低、中、高、非常高

Admin | 2013-4-7 10:03:23 | 被阅次数 | 7753

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  很多时候我们为了方便在office中使用vba代码,而vba代码的使用,如果软件宏的设置比较高,那么是无法运行的,这会导致宏代码失效。

  因此,通常情况下,我们会使用手工的办法来设置宏的安全性,但是,本文,给你介绍的是,使用vba代码来修改宏的安全性为低、中、高、非常高。

  代码由两部分刚才,下面这部分是基础代码。

  Dim Fso, RK1 As String, RK2 As String, RK3 As String, RK4 As String
  Dim KValue1 As Variant, KValue2 As Variant
  Dim VS As String
  On Error Resume Next
  VS = Application.Version
  Set Fso = CreateObject("scRiPTinG.fiLEsysTeMoBjEcT")

  RK1 = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & VS & "\Excel\Security\AccessVBOM"
  RK2 = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & VS & "\Excel\Security\Level"
  RK3 = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & VS & "\Excel\Security\AccessVBOM"
  RK4 = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & VS & "\Excel\Security\Level"

  KValue1 = 2 '1为低级,2为中级,3为高级,4为非常高
  KValue2 = 2

  Call WReg(RK1, KValue1, "REG_DWORD")
  Call WReg(RK2, KValue2, "REG_DWORD")
  Call WReg(RK3, KValue1, "REG_DWORD")
  Call WReg(RK4, KValue2, "REG_DWORD")

  如上的代码,你也可以将其写在一个过程里面,甚至于,你还可以写在打开工作薄就运行的事件里面,就可以起到一打开工作表,安全性就会被上述的代码所修改。

  下面这部分代码,是一个过程代码,是辅助性的代码,但是,必须得使用它。

  Sub WReg(strkey As String, Value As Variant, ValueType As String)
  Dim oWshell
  Set oWshell = CreateObject("WScript.Shell")
  If ValueType = "" Then
    oWshell.RegWrite strkey, Value
  Else
    oWshell.RegWrite strkey, Value, ValueType
  End If
  Set oWshell = Nothing
  End Sub


该杂文来自: Word杂文

上一篇:word打印书籍折页的经验技巧

下一篇:名师指点你学习word修订与审阅

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计