VBA 프로젝트 암호에 대한 VBA 코드 제거

때때로 버그의 위치를 확인하기 위해 원본 코드를 확인해야 할 때가 있다. 몇 년 전에 비슷한 코드를 사용해 인터넷에서 찾아와서 불시의 수요에 대비해 백업을 했다.
CSDN 블로그(2012)에도 아래 코드와 완전히 일치하고 오리지널로 표시된 것을 보았습니다.또 다른 CSDN 블로그(2013)는 다른 버전으로 전재된다.
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

좋은 웹페이지 즐겨찾기