Excel電子表格需要編程訪問其Project
結構。但是,默認情況下禁用此訪問。它可以通過編程來啓用,通過在這個片段中寫入註冊表:是否啓用安全保護功能
Set wsh = CreateObject("WScript.Shell")
'key to modify'
str1 = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & Application.Version & "\Word\Security\AccessVBOM"
'enable access'
wsh.RegWrite str1, 1, "REG_DWORD"
'read the vba project name'
MsgBox Application.NormalTemplate.VBProject.Name
'disable access'
wsh.RegDelete str1
雖然這是可以做到(和復位)程序,這可能會造成安全問題。
在我的項目中,它試圖修改Project
結構,如果不能,則會拋出錯誤。該錯誤可以被捕獲,並且此時它可以運行該代碼段以啓用訪問或向用戶顯示錯誤消息以手動啓用訪問。通過程序啓用訪問,稍後可以禁用,還是指示用戶這樣做會更好嗎?
我發佈了這個問題的最佳做法標籤,因爲擔心寫作「粗魯「軟件。你提到的只有在啓動時纔讀取設置的Office可能會導致這種情況 - 它是否在打開文件或打開應用程序時檢查註冊表? – 2009-07-15 15:05:10