文件

保護 VBA(Visual Basic for Applications)程式碼的 4 種方法

您編寫的 VBA 程式碼是電子表格的核心和靈魂。保護 VBA 代碼是為了確保您的程式碼不會在您不知情的情況下被盜或使用。這篇文章將介紹一些保護 VBA 程式碼的不同方法,以便只有您可以輕鬆存取它。

為什麼要關心保護 VBA 程式碼?

VBA 是一種巨集語言,可用於在 Excel、Word、PowerPoint 中建立自動化任務或操作。您應該保護 VBA 程式碼的原因有幾個:

  • To protect your VBA code from being accidentally changed. VBA code is a powerful tool for Excel users, but it can also be a source of frustration for those who don’t use it. If you don’t secure the VBA with a password, then others using your workbook can access the code and make changes to it without knowing what they’re actually doing. You don’t want to debug your VBA code because it can be painful—might take hours to figure out why and then even more time!
  • 保護您的智慧財產權。 VBA 程式碼對於某些公司來說非常有價值。如果其他人存取您的電子表格並複製您使用的功能,那麼他們可能會將其冒充為自己的作品並將其出售給許多公司。透過安全措施保護您寶貴的原始碼。不要讓任何人輕易竊取或複製。
  • 保護自己免受他人使用您的作品的侵害。如果您有一段有價值的 VBA 程式碼,可以讓您的工作更輕鬆或更高效,那麼您可能會想要保護它僅供個人使用。

請務必注意,保護 VBA 程式碼的方法有多種,但並非所有方法都以相同的方式保護您的程式碼。這取決於您以及您認為最適合您需求的方式。

#1 使用 VBAProject 工具密碼保護 Excel 中的 VBA 程式碼

本部分說明如何使用 VBA 專案保護設定在某種程度上保護您的 VBA 程式碼免遭窺探和竄改。

  • 安全等級:弱;有一些工具,例如 VBA 密碼刪除器 可以在幾分鐘內解鎖密碼;
  • 難度:簡單;
  • 費用:免費;

步驟1。 從 Excel 的「開發人員」選單中選擇「Visual Basic」。

從 Excel 開發人員標籤開啟 Visual Basic 面板

步驟2。 若要鎖定 VBA 項目,請按一下欄中的“工具”,然後選擇“VBAProject 屬性”。

選擇 VBAProject Properties 以設定密碼

單擊此選單項目後,您應該會看到以下對話框:

VBAProject屬性主介面

預設選擇“常規”選項卡,但按一下“保護”選項卡。

步驟3。 勾選“鎖定項目以供查看”,然後在這兩個方塊中輸入密碼兩次,然後按一下“確定”。

鎖定 VBA 專案以供查看並設定密碼以保護 VBA 程式碼

步驟 4。 儲存並重新開啟 Excel 文件。透過雙擊 VBA 項目,您將能夠判斷 VBA 密碼保護是否已正確啟用。當您使用密碼保護 VBA 項目時,可以防止任何人意外修改。

查看 VBA 程式碼需要密碼

#2 使用 VBA 混淆來保護您的巨集程式碼

VBA 混淆是使 VBA 程式碼不可讀但仍可用的藝術。它透過多層混淆來修改現有的宏,這使得理解底層邏輯變得困難。高級 VBA 混淆器使用許多先進的混淆技術,使反向追蹤和恢復更具挑戰性。

  • 安全等級:中;有人仍然能夠花時間並花費足夠的資源來恢復程式碼;
  • 難度:中等;取決於等級;
  • 成本: 免費的 VBA 混淆器 /優質的;

您可以將 VBA 模糊處理與 #1 技術結合使用,即先模糊處理,然後使用密碼保護模組。請記住,混淆是不可逆的,因此在繼續之前請先備份來源檔案。另請記住,不能保證混淆後的程式碼能夠無錯誤地執行。請在發布之前徹底測試。使用項目的單一部分進行混淆。第一個模組混淆測試成功後,繼續進行第二個模組混淆測試。

#3 將 VBA 程式碼轉換為動態連結程式庫 (DLL)

Visual C++ 和 Visual Basic 等編譯器產生的應用程式難以破解。這是因為程式碼被編譯成可執行檔或動態連結庫檔。所以我們也可以將VBA程式碼編譯成動態連結函式庫文件,然後在Excel中使用。

  • 安全等級:高;
  • 難度:中等;
  • 費用:免費;

強烈建議這種保護方法,但不能 100% 保證。若要了解如何編譯,請參閱 VbaCompiler.com 上的說明: 將 VBA 程式碼編譯為本機 Windows DLL 的 10 個步驟

使用 VbaCompiler for Excel 成功完成 Excel 檔案 VBA 程式碼編譯

#4 將 VBA 轉換為 C 或 C++

將巨集轉換為 C 或 C++ 比 VBA 更難進行逆向工程。如果您想保護您的程式碼,這是最好的方法。

  • 安全等級:最高;如果沒有權利,幾乎不可能取得代碼;但同樣,這並不能 100% 保證;
  • 難度:複雜、耗時;因為VBA和C/C++是非常不同的語言,所以它更加困難,因為你必須投入大量的精力。

結論

使用巨集是簡化進階功能開發的好方法。不幸的是,這會使您的程式碼面臨被他人竊取或複製的風險。本文討論了可用於防止其他使用者竊取或竄改您的 VBA 程式碼的方法。請注意,VBA 程式碼保護並非萬無一失,但它確實提供了一些針對偶然攻擊者的保護。

蘇珊娜的照片

蘇珊娜

Susanna 是 Filelem 的內容經理和作家。她多年來一直是一位經驗豐富的編輯和書籍版式設計師,並且對嘗試和測試各種生產力軟體感興趣。她也是 Kindle 的忠實粉絲,使用 Kindle Touch 已近 7 年,幾乎走到哪裡都帶著 Kindle。不久前,該設備的使用壽命即將結束,蘇珊娜高興地買了一台 Kindle Oasis。

相關文章

返回頂部按鈕