1. 程式人生 > >移除VBA專案密碼的VBA程式碼

移除VBA專案密碼的VBA程式碼

有時候需要檢視原始碼來確認bug的位置,很多年前就用過類似程式碼,從網路上找來備份一下以備不時之需。

Private Sub VBAPassword()
'你要解保護的Excel檔案路徑
Filename = Application.GetOpenFilename("Excel檔案(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt", , "VBA破解")

If Dir(Filename) = "" Then
MsgBox "沒找到相關檔案,清重新設定。"
Exit Sub
Else
FileCopy Filename, Filename & ".bak"
'備份檔案。 End If Dim GetData As String * 5 Open Filename For Binary As #1 Dim CMGs As Long Dim DPBo As Long For i = 1 To LOF(1) Get #1, i, GetData If GetData = "CMG=""" Then CMGs = i If GetData = "[Host" Then DPBo = i - 2: Exit For Next If CMGs = 0 Then MsgBox "請先對VBA編碼設定一個保護密碼...", 32, "提示" Exit Sub
End If Dim St As String * 2 Dim s20 As String * 1 '取得一個0D0A十六進位制字串 Get #1, CMGs - 2, St '取得一個20十六制字串 Get #1, DPBo + 16, s20 '替換加密部份機碼 For i = CMGs To DPBo Step 2 Put #1, i, St Next '加入不配對符號 If (DPBo - CMGs) Mod 2 <> 0 Then Put #1, DPBo + 1, s20 End If MsgBox "檔案解密成功......", 32, "提示" Close #1 End
Sub