打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用VBA宏自动改变Excel宏安全级别设…
用VBA宏自动改变Excel宏安全级别设置
Option Explicit
Sub SetExcelVBA()
'改变Excel的安全级别
'使用Wscript,FileSystemObject,创建txt文件,注册表操作,VBS文件自我删除,改变Excel文件读写属性等
Dim WSH As Object, ret As String, regStr As String
Dim strFullname As String, strVBS As String
Dim tf, fso, RetVal
'本程序仅适用于Excel 2003(11.0),如果当前版本不是2003则退出
If Application.Version <> "11.0" Then MsgBox "本代码仅在 Excel 2003 下可使用! ", vbExclamation, "提示": Exit Sub
strFullname = ThisWorkbook.FullName '取得当前工作薄的全名
strVBS = Replace(UCase(strFullname), ".XLS", ".vbs") 'temp文件VBS的文件名
Set WSH = CreateObject("Wscript.Shell") '创建Wscript对象
Err.Clear
On Error Resume Next
regStr = "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\Level" '注册表中Excel vba安全级别位置
ret = WSH.RegRead(regStr) '读取当前安全级别
If Err.Number <> 0 Then
   '判断读取是否成功
   MsgBox "从注册表读取当前Excel VBA安全级别设置失败,本程序将退出! ", vbExclamation, "提示"
   Exit Sub
Else
'如果当前Excel VBA安全级别不为“低”,则设置为“低”,值1-4分别对应:低,中,高,非常高
If Val(ret) <> 1 Then ret = WSH.RegWrite(regStr, "1", "REG_DWORD")
End If
Set fso = CreateObject("Scripting.FileSystemObject")
Set tf = fso.CreateTextFile(strVBS, True) '创建temp文件VBS文件
With tf
    '写入VBS文件内容
    .WriteLine ("Dim oExcel,fso,delme")
    .WriteLine ("Set fso = CreateObject(""Scripting.FileSystemObject"")")
    .WriteLine ("Set oExcel = CreateObject(""excel.application"")")
    .WriteLine ("oExcel.Workbooks.Open " & Chr(34) & strFullname & Chr(34))
    .WriteLine ("oExcel.Visible=true")
    .WriteLine ("Set oExcel = Nothing")
    .WriteLine ("delme = fso.DeleteFile(" & Chr(34) & strVBS & Chr(34) & ")")
    .Close
End With
With ThisWorkbook
    '将当前文件属性设置为“只读”,以方便重新打开
    .ChangeFileAccess Mode:=xlReadOnly
    .Saved = True
End With
RetVal = WSH.Run(Chr(34) & strVBS & Chr(34), 1, True) '运行刚刚创建的VBS文件,新启动一个Excel程序
Application.Quit '退出当前Excel
Set WSH = Nothing
Set fso = Nothing
End Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vbs的一些用法
VBScript的对象操作方法
如何不通过Excel中的“宏安全性设置”来设置宏安全性? - e问e答 - Excel 技...
用EXCEL自动查询并保存网络天气预报记录
一些很恶作剧的vbs程序代码
妙用脚本和批处理 来清除电脑中的痕迹
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服