- 帖子
- 173
- 主題
- 42
- 精華
- 0
- 積分
- 220
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 365
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-10-13
- 最後登錄
- 2023-10-11
|
8#
發表於 2011-12-19 00:06
| 只看該作者
回復 7# Hsieh
感謝 Hsieh 版主
這方便 又不用開啟 巨集 謝謝 簡單好用
也 感謝 GBKEE 讓我認識一些 VBA
以下 是我 在 其他網頁找到 VBA 但不能用
我想找 無法 簡單就破解 保護 工作表
程式如下 可以修正 使用嗎
'excel vba工程密?加密和破解
'0>注意保?版?,?供??使用。
'1>一段极好的VBA保?密?破解程序??WIN98+OFFICE97破解率100%
'2>用以下代??VBA加密保?后用offkey 6.5-7.0及Advanced VBA pASSWORD Recovery??版均?法破解出保?程式?的密?
'移除VBA??保?
Sub MoveProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, False
End If
End Sub
'?置VBA??保?
Sub SetProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, True
End If
End Sub
Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)
If Dir(FileName) = "" Then
Exit Function
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 Function
End If
If Protect = False Then
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, "提示"
Else
Dim MMs As String * 5
MMs = "DPB="""
Put #1, CMGs, MMs
MsgBox "?文件特殊加密成功......", 32, "提示"
End If
Close #1
End Function |
|