日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VBA学习笔记(一):自动添加代码VBA修改注册表

發布時間:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VBA学习笔记(一):自动添加代码VBA修改注册表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、以下代碼是通過Auto_Open事件,自動向ThisWorkbook里添加VBA代碼:

Private Sub Auto_Open()Call AddCodeToThisWorkbookMsgBox ("This is Auto_Open Sub !") End Sub Private Sub AddCodeToThisWorkbook() With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.InsertLines 1, "Private Sub Workbook_open()".InsertLines 2, " MsgBox (""This is Workbook_Open Sub !"")".InsertLines 3, "End Sub"End With End Sub

二、以下代碼是通過VBA修改注冊表:

Sub ChangeSettings()Dim FsoDim RegKey_User_AcsVm As StringDim RegKey_User_Level As StringDim RegKey_Mach_AcsVm As StringDim RegKey_Mach_Level As StringDim RegVal_User_AcsVm As VariantDim RegVal_User_Level As VariantDim RegVal_Mach_AcsVm As VariantDim RegVal_Mach_Level As VariantDim ExcelVersion As StringOn Error Resume NextExcelVersion = Application.VersionSet Fso = CreateObject("Scripting.FileSystemObject")RegKey_User_AcsVm = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security\AccessVBOM"RegKey_User_Level = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security\Level"RegKey_Mach_AcsVm = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security\AccessVBOM"RegKey_Mach_Level = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security\Level"Value_User_AcsVm = 1Value_User_Level = 1Value_Mach_AcsVm = 1Value_Mach_Level = 1Call ModReg(RegKey_User_AcsVm, Value_User_AcsVm, "REG_DWORD")Call ModReg(RegKey_User_Level, Value_User_Level, "REG_DWORD")Call ModReg(RegKey_Mach_AcsVm, Value_Mach_AcsVm, "REG_DWORD")Call ModReg(RegKey_Mach_Level, Value_Mach_Level, "REG_DWORD") End Sub Sub ModReg(RegKey As String, Value As Variant, ValueType As String)Dim oWshellSet oWshell = CreateObject("WScript.Shell")If ValueType = "" ThenoWshell.RegWrite RegKey, ValueElseoWshell.RegWrite RegKey, Value, ValueTypeEnd IfSet oWshell = Nothing End Sub

、以下函數用來判斷一個工作簿中是否存在指定的Sheet名:

Function SheetIsExist(WBookName As String,WSheetName As String) As Boolean Dim Tmp_WSheet As Worksheet For Each Tmp_WSheet In Workbooks(WBookName).Worksheets If UCase(Tmp_WSheet.Name) = UCase(WSheetName) ThenSheetIsExist = TrueExit FunctionEnd If Next Tmp_WSheet SheetIsExist = False End Function

下為調用SheetIsExist函數的示例:

Sub Example01()'開始計時begin = Timer'禁止刷屏Application.ScreenUpdating = FalseApplication.DisplayAlerts = False'記錄當前文件名Dim CurFileName As StringCurFileName = Sheets("Sheet1").[A1].Parent.Parent.NameIf SheetIsExist(CurFileName, "Sheet2") ThenWorksheets("Sheet2").DeleteEnd IfIf SheetIsExist(CurFileName, "Sheet3") ThenWorksheets("Sheet3").DeleteEnd IfApplication.ScreenUpdating = TrueApplication.DisplayAlerts = Trueover = TimerMsgBox ("已運行完成!共運行" & over - begin & "s") End Sub


轉載于:https://blog.51cto.com/mitree/1329270

總結

以上是生活随笔為你收集整理的VBA学习笔记(一):自动添加代码VBA修改注册表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。