2011-03-08 98 views
2

我一起攻擊了Excel的概念證明,以從數據庫獲取數據,並且需要打包以便將其分發給我們的客戶。我的第一個嘗試只是把我所有的代碼放到一個代碼模塊中,但是在Excel中,我可以看到宏列表中的所有模塊,當我真的只想要列表中的主模塊時。我猜我需要將不能直接運行的子例程移到類模塊中,以便它們隱藏起來。是否還有其他關於如何打包宏代碼的提示,以便給客戶提供更簡單更安全的方法?VBA體系結構技巧 - 宏包裝

+2

如果您的宏正在訪問數據庫,請不要忘記密碼保護VB項目。如果宏中的任何信息特別敏感,那麼請注意,這種密碼保護功能不是很強大(最多可以阻止這種空閒的好奇)。在這種情況下,你會想要一些類型的compliled加載項。 – 2011-03-08 19:58:24

回答

1

Sub是否隱藏在宏列表中是基於它的作用域(例如public,private)。如果您創建一個私人的,它不會列在宏列表中。

'This sub is public 
Public Sub myPublicSub() 
    MsgBox "hello world" 
End Sub 

'This sub is also public 
Sub mySub() 
    MsgBox "hello world" 
End Sub 

'This sub is private 
Private Sub myPrivateSub() 
    MsgBox "hello world" 
End Sub 

類模塊用於創建類,這可能不是有用的或必要的解決方案(如果代碼的運作方式,你想現在它)。

如果這是針對客戶的,我強烈建議將包裝打包爲.xlam(Excel 2007+加載項)並學習如何自定義功能區以包含用於宏的按鈕。宏列表不是特別有用。 (見http://openxmldeveloper.org/archive/2006/05/25/CustomUIeditor.aspx一個免費區XML編輯器「附件(S)」在文章底部看到http://www.rondebruin.nl/ribbon.htm的一些教程)

爲了保護您的代碼被查看/被盜,VBA項目可以被密碼保護,但這種不應該被認爲是堅實的保護。