簡單加密宏
『壹』 求教怎麼用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對象模塊中,保存文件即可。
『貳』 如何加密宏代碼
從VBA編輯窗口工具欄的:工具→VBAProject屬性→保護→鎖定工程(點中查看時鎖定工程)→查看工程屬性密碼→密碼(在此框中輸入密碼)→確認密碼(在此框中再次輸入密碼)→確定→保存退出,下次打開的時候就要輸入正確的密碼,才能看到代碼
『叄』 如何給EXCEL里的宏加密碼
1、首先打開需要設置加密碼的表格,進入到EXCEL表格裡面之後,打開VBE編輯器。
『肆』 如何用C語言的宏實現數據加密
宏是一種C語言中的編碼精簡器,基本上有這么幾個作用 1. 預編譯和編譯時用到的常量 2. 某個子過程用函數調用寫時間開銷太大 3. 編譯控制
宏本身是不能實現你的加密數據功能的,如加密個文件、加密某個內存存儲、或加密從網路傳來的數據,它沒這個功能。但是用宏可以把程序的源文件寫的讓別人「看不懂」。
要用宏加密,只能是用宏調用加密函數如Crypto++中的函數進行加密。
『伍』 如何給EXCEL中的宏加密防止別人查看和修改
vba窗口-工具-VBAProject屬性-保護-打勾-密碼!
『陸』 Excel中如何用宏加密單元格A1:A10數據
加密只需要工作表保護即可,不需要宏來加密
設置A1:A10的單元格格式為自定義「;;;」,把字體顏色設置為白色
選擇A1:A10,右鍵設置單元格格式,屬性「隱藏」和「鎖定」都勾選。
然後選擇保護工作表。這樣A1:A10中的數據就被隱藏和鎖定了
如果你只是想讓A1:A10的內容不被他人編輯,但可以看到。其它單元格允許編輯的話
就用下面這個方法了
選擇所有單元格,然後右鍵設置單元格格式,屬性「隱藏」和「鎖定」都不要勾選。
選擇A1:A10,右鍵設置單元格格式,屬性「隱藏」和「鎖定」都勾選。
然後選擇保護工作表。
保護工作表時可以設置密碼和其它勾選項目。
自己慢慢研究一下
『柒』 如何使用宏代碼給word文檔統一進行加密
在實際工作中,為安全起見,筆者給每一個Word2007文檔都加上了密碼,而且為了便於記憶,所有的文檔都使用同一個密碼。所以,每編輯一個新文檔,就要重復添加密碼的操作過程。現在筆者有一種自動給所有Word2007文檔加上統一密碼的好方法。 步驟/方法1、在「視圖」菜單中選擇「宏」選項卡,單擊「錄制宏」命令。
鍵入宏的名稱,在「將宏保存在」框中,單擊「所有文檔(Normal.dotm)」,在「說明」框中,鍵入對宏的說明,比如「給新建文檔自動加上統一密碼」。然後單擊「確定」按鈕開始錄制宏。
2、單擊「Office按鈕」,將游標向下移動到「准備」項上,則右邊自動顯示「准備」菜單,點擊其中的「加密文檔」,彈出「加密文檔」對話框,在「密碼」輸入框中輸入你需要設置的密碼,如123456,單擊確定,再次輸入密碼,再次確定。
3、在「視圖」-「宏」-「停止錄制宏」,單擊查看宏,即可看到剛才錄制的宏。
『捌』 如何用宏給word文檔加密
自己在個人電腦中做宏來加密文檔很簡單,就用"錄制宏"就可以了,但提醒你不能在公開機子上實現這一過程,否則加密沒有意義,別人可以通過VB語言查看到密碼的.
似乎無法實現你所說的"只能讓閱讀者看一兩次然後鎖死,不讓任何人在打開"的功能.
『玖』 寫好Excel宏怎麼樣加密
Excel表格是我們工作中經常用到的,而它往往涉及統計數據等敏感問題,因此,Excel表格的保護也是經常遇到的問題,如何安全使用Excel呢?我們常用到的是Excel「工具」菜單提供的「保護工作表」和「保護工作簿」功能。有沒有其他方法呢?
用宏進行「顯式」加密
在需要加密的Excel 表中,點擊[工具]→[宏]→[Visual Basic編輯器],打開「工程資源管理器」,雙擊該工作表,在右邊的是設置該表屬性的編輯窗口,單擊該窗口左上方的下拉列表框,選擇Worksheet,再從該窗口右上方的列表框中選擇Activate(激活)(如圖)。
察看原圖 發送到手機
添加如下代碼:(假設「123」為密碼,Sheet1為限制許可權表格,Sheet2為工作簿中為任何適合的工作表)
Private Sub Worksheet_Activate()
Sheets("sheet1").Cells.Font.ColorIndex = 2 '設置文字顏色為白色
If Application.InputBox("請輸入密碼:") = 123 Then
Range("A1").Select
ActiveSheet.Cells.Font.ColorIndex = 56
' 設置文字顏色為黑色
Else
MsgBox "密碼錯誤,即將退出!"
Sheets("sheet2").Select
End If
End Sub
每次當你選擇該「加密」表的時候都會彈出對話框要求輸入密碼,正確則進入該表(Sheet1),否則會選擇其他表(Sheet2)。
用宏進行「隱式」加密
「顯式」加密,雖然可以讓沒有密碼的使用者無法看到「加密」表格,但是每次選擇該表格時都會彈出對話框,實在不方便而且給其他用戶一種被防範的不舒服感覺。於是筆者就想出了下面的「隱式」加密方法。假如要加密的是Sheet1,我們可以設置在Sheet2的「A1」單元格為密碼的輸入處。於是修改以上代碼如下:
Private Sub Worksheet_Activate()
Sheets("sheet1").Cells.Font.ColorIndex = 2'設置文字顏色為白色
If Sheets("sheet2").Cells(1, 1) = 123 Then
Range("A1").Select
ActiveSheet.Cells.Font.ColorIndex = 56
' 設置文字顏色為黑色
End If
End Sub
設置好以後,只有Sheet2的(A1)單元格為密碼「123」時「加密」表Sheet1的內容才顯示出來,否則就是透明的,神不知鬼不覺;所謂「隱式」。
「隱式」加密雖然保證了沒有密碼的用戶不能查看「加密」表格的內容,但是不能保護其他用戶對其進行修改。所以我們要綜合運用上面所說的「保護表格」和「隱式加密」對要保密的表格進行設置。