2011-09-06 277 views
0

我在尋找可以爲我的Excel項目添加額外安全級別的可能性。在Excel 2010中禁用VBA代碼編輯器窗口

我們有多個用戶。一些知道(並且意味着)解鎖VBA宏的密碼的人。其他人不打算能夠訪問這些。

我不確定是否有人有密碼不應該(更改密碼不停止篡改),所以我想禁用任何用戶未經批准的VBA編輯窗口。我找不到任何方法來做到這一點,這可能嗎?

我無法禁用保存選項,因爲所有用戶都需要保存數據。

我試圖禁用功能區圖標等,但沒有成功。仍然可以用Alt + F11打開代碼窗口。

任何幫助將是偉大的。

回答

2

我來自Excel 2003,但這個概念也應該爲你工作。你能想到的

  • 誘捕的Alt-F11鍵(Application.OnKey "%{F11}" "MyNullSub")加
  • Sub MyNullSub() 
    ' do nothing 
    End Sub 
    

    禁用相關的菜單項(Application.CommandBars(...).FindControl(ID:=..).OnAction = "MyNullSub"

爲的依賴需要在場(GetSetting(...)),但這隻會有助於直到這個額外的祕密被傳播出去以同樣的方式顯示(更改)密碼顯然。

+0

獲得批准的用戶將如何訪問VB編輯器?另外,如果未經批准的用戶在打開工作簿時選擇不允許使用宏,則此陷印將無法使用。 –

+0

@Jean as我寫道:作爲一個註冊表設置的依賴,即只有在某個註冊表項不存在的情況下才會佈置陷阱。超級用戶將被告知在「HKEY_CURRENT_USER \ Software \ VB和VBA設置」下面設置一個特定的密鑰....這是第二層保護....正如我上面所說的那樣,這也不是一個超級安全和防僞機制但總比沒有好 – MikeD

+0

好吧,我現在明白了。我敢肯定,註冊表關鍵字技巧會比密碼傳播慢得多*。 +1,因爲我認爲這個問題沒有很好的答案,但是這非常接近! –