給vba加密
Ⅰ VBA代碼部分如何加密解密
在VBA編輯器的"工具」菜單里點「VBAProject屬性",在「保護」頁中把「查看時縮定工程」的勾選上,然後輸入密碼後確定即可。這樣下次打開查看代碼時就需要輸入密碼了。
但這種加密方式的破解,早就有專用工具了,可以在網路上查找試試。
比較好的方法是,把做好含有VBA代碼的Excel編譯成exe文件,這種工具也可以在網上找到,自己找一下吧。
Ⅱ vba如何加密軟體使用時間
可以使用VBA的DateDiff函數來計算軟體的使用時間,然後將結果用MD5演算法加密發送給伺服器,用來對軟體使用時間進行核對。
Ⅲ 求教怎麼用WINHEX給EXCEL VBA宏加密
用WINHEX給EXCEL VBA宏加密的方法:
一、為VBA工程設置密碼
限制別人查看VBA源代碼的一個簡單辦法就是設置VBA工程密碼或設置工程不可查看。方法如下:
1、按Alt+F11,在VBE窗口在,單擊「工具—VBAproject屬性」,打開「VBAproject屬性」對話框。
2、單擊「VBAproject屬性」對話框中的「保護」選項卡。如圖1所示,選中「查看時鎖定工程」復選框。在「密碼」框中輸入保護密碼,在「確認密碼」框中再輸入一次密碼,然後單擊「確定」,關閉「VBAproject屬性」對話框。
3、保存並關閉工作簿。
當你再打開該工作簿後,打開VBE窗口時,就不再顯示VBA的窗體、模塊等對象,看不到VBA源代碼了。
★提示:這種密碼保護很容易破解。★
二、設置工程不可查看
限制別人查看VBA源代碼的方法就是設置「工程不可查看」。方法如下:
共享級鎖定:先對Excel文件的「VBAProject工程」進行密碼保護(參考「為VBA工程設置密碼」)。再打開要保護的文件,單擊「工具_保護_保護並共享工作簿_以追蹤修訂方式共享」,如圖2所示,輸入保護密碼再保存文件。當你得新打開「VBAProject」工程屬性時,就將會提示:「工程不可看!」
破壞型鎖定:用16進制編輯工具(如WinHex等)打開Excel文件,查找定位以下地方: ID="{00000000-0000-0000-0000-000000000000}"(註:實際顯示不會全部為0),此時,你只要將其中的位元組隨便修改一下即可。
★提示:在修改前最好做好你的文檔備份。當然這種方法也可破解的,因為加密總是相對。★
三、防止強制中斷方式查看VBA代碼
有時,我們可以通過運行程序,然後在運行的過程中強制按「Ctrl+Break」強制中斷程序運行,進VBE編輯器查看源碼。為此,我們可以在工作簿的open事件中加入以下語句來屏蔽「Ctrl+Break」組合鍵。
Application.EnableCancelKey = xlDisabled
如果要恢復「Ctrl+Break」組合鍵,則用下面的語句。
Application.EnableCancelKey = xlInterrupt
四、禁用宏則關閉Excel文件
當打開含有宏的文件時,如果「禁用宏」並打開文件後,所有編輯的VBA程序將失效。如何當用戶打開Excel文件並禁用宏時,讓文件自動關閉呢?
我們可以通過調用Excel4.0版(Excel的一個老版本)的宏命令來解決這個問題。因為「禁用宏」功能無法禁用4.0版本的宏。當您設置完成,再打開文件並點擊禁用宏時,系統就會彈如下圖所示提示信息,單擊「確定」後文件就會自動關閉。
禁用宏後的提示信息
設置步驟和使用方法:
(1)打開要設置的文件,在VBE編輯器中添加一個模塊。寫入以下代碼:
Function NoRunMacro () 』A3單元格中的字元
End Function
(2)在任一個工作表標簽上單元格右鍵,執行「插入」命令打開如下圖所示對話框,在常用選項卡中選取「MS Excel4.0宏表」項,然後單擊「確定」按鈕,在當前工作簿中就會新建一個默認名Macro1的「宏表」,更改表名為「宏表1」
在宏表的以下單元格中輸入公式:
(3)逐個選取工作簿中其他工作表,然後執行【插入】/【名稱】/【定義】命令,打開【定義名稱】對話框。在「在當前工作簿中的名稱」框中輸入:工作表名稱+Auto_Activate。如下圖所示在Sheet1工作表中打開【定義名稱】對話框,定義的名稱就為:Sheet1!Auto_Activate。
然後在引用位置文本框中輸入:=宏表1!$A$2。
★提示:對於一個工作表數量較多的工作表逐個設置會很麻煩。所以這時可以只需為其中一個設置名稱,但要保障「當打開工作簿時,必需是設置名稱的工作表處於選取狀態」★
五、限制工作簿的使用次數,超過次數就自我刪除
限制工作簿的使用次數,超過次數就自我刪除,也不失為保護作品的一種好方法。但這種方法需要修改注冊表。
有關程序的代碼如下:
Private Sub Workbook_Open()
Dim counter As Long, term As Long, chk
chk = GetSetting("hhh", "budget", "使用次數", "")
If chk = "" Then
term = 50 '限制使用50次
MsgBox "本工作簿只能使用" & term & "次" & vbCrLf & "超過次數將自動銷毀!", vbExclamation
SaveSetting "hhh", "budget", "使用次數", term
Else
counter = Val(chk) - 1
MsgBox "你還能使用" & counter & "次,請及時注冊!", vbExclamation
SaveSetting "hhh", "budget", "使用次數", counter
If counter <= 0 Then
DeleteSetting "hhh", "budget", "使用次數"
killme
End If
End If
End Sub
Public Sub killme()
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
ThisWorkbook.Close False
End Sub
將上述程序復制到工作簿的ThisWorkbook對象模塊中,保存文件即可。
Ⅳ 給Excel2007 VBA代碼加密的方法
方法/步驟
1、打開Excel2007啟用宏的Excel文件
2、同時按下ALT+F11鍵,打開VBA編輯器窗口。
3、查看對應的代碼窗口,左側VBA工程
PROJECT屬性框中對應相應的SHEET表或者模塊。
4、點擊對應的SHEET表或者模塊名稱,滑鼠右鍵放在其上,選擇VBAPROJECT屬性。
5、在彈出的VBAPROJECT工程屬性窗口中-保護選項卡-選中查看時鎖定工程,“查看工程屬性的密碼”內輸入自己要設定的密碼。
6、點擊確認,然後點擊文件工具欄內的保存按鈕。
7、下次打開Excel文件時再同時按下ALT+F11進入VBA代碼編輯器,滑鼠左鍵雙擊左側VBA工程中的VBAPROJECT文件名稱,彈出VBAPROJECT密碼輸入窗口,輸入密碼才可進入,否則無法查看工程密碼,呵呵。
Ⅳ 如何加密VBA
首先可以確定VBA是自帶加密工程的,以設置密碼的方式,但是如果是商業性或者高標準的加密,VBA的加密基本不能滿足需要,VBA的加密只能用於預防使用者非惡意的修改,不能稱為版權和知識保護的工具。
以下是VBA加密的方法:
打開VBA界面
選擇左側VBAProject(文件名.xls),也就是所有表格最上面的那個
右鍵-VBAProject屬性-選擇「保護」標簽-勾選「查看時鎖定工程」並輸入密碼-確定
自此,VBA的密碼就設定好了,單純打開Excel,將不能直接查看VBA代碼,會提示輸入密碼。但是很遺憾的時,有很多工具可以直接繞過密碼,或者重置密碼,連破解密碼都不需要,所以如果要用於商業性加密,可以考慮其他軟體,或者使用專業資料庫代替XLS文件。
Ⅵ 怎麼給excel vba編輯器加密
不用代碼
VBA中---工具---VBAproject屬性----保護---查看時鎖定工程(選中)---設好密碼---保存退出---再進就會如你所願了