2016-03-03 91 views
4

我在一個辦公室裏工作,我們有許多業餘的Excel「專家」,他們不斷嘗試「改進」(即快捷鍵,更改邏輯,重寫以使「更快」)電子表格。當我在一個非常規範的世界中工作時,宏需要得到公司,客戶和監管機構的批准,所以更改宏是非常重要的。隱藏Excel 2010中的MS VBA屏幕

其中一個問題是,即使我們已將密碼保護設置爲只讀,然後在VBA屬性屏幕中設置了一個密碼,人們仍然可以進入代碼。用戶似乎能夠繞過密碼,並進入主代碼,而無需設置密碼。

還有什麼可以阻止他們進入代碼嗎?提到了一個想法,但我找不到對它的參考,是爲了防止VBA屏幕打開。這可以做到嗎?任何其他建議將受到感謝。

+1

將您的項目轉移到VSTO解決方案或編譯的DLL功能 –

+4

備忘錄告知他們違反公司安全策略的後果,特別是如果他們採用技術繞過內置保護功能將是一種方法。 –

+0

@KazimierzJawor感謝您的意見。很有用。我會帶他們通知 – Clauric

回答

5

一旦您允許您的用戶物理訪問PC,您不能保證您的安全不會被打敗。整個行業甚至說之多:

如果一個壞傢伙已經不受限制到您的計算機的物理訪問,這是不是你的電腦了

密碼保護充其量是一種威懾。如果您的用戶已經在規避您的保護,那麼您無法完全阻止來自VBA的操作,除了完全刪除VBA。

可以在沒有VBA功能的情況下安裝Office,但是無論如何您都無法運行任何宏,因此在鎖定時可能會損失更多。

您可以嘗試混淆您的代碼,但這並不能真正阻止您的用戶編寫更多自己的代碼。

但是,您可以使用託管加載項和VSTO,從而代碼將從Excel工作簿和VBA模塊中移出,並轉換爲.NET源代碼。組件已部署和/或已安裝,用戶不能輕易更改。

我一直在使用的大多數監管機構都知道VBA和密碼保護的侷限性,但他們也意識到允許用戶使用Excel和VBA提供的功能的業務優勢。他們通常認爲,只要您實施了合理的密碼和保護措施,那麼對這些保護措施的任何規避都超出了典型用戶的能力範圍。

你必須採取合理的保護措施,並分發和執行健全的政策和程序。是的,你會得到違反政策的人,但如果監管機構對你的方法提出質疑,你就會有明確的案例。另一方面,不是假設某些/所有的「專家」都是惡意的,也許組織一系列會議來討論如何改進事情。你永遠不知道,他們可能有真正的優化,可以降低你的成本和/或提高你的性能和彈性。

+0

謝謝。非常有用的評論。我將不得不接受勸告。 – Clauric