Lost Information!

엑셀 VBA 기본 - 잠긴 엑셀시트를 풀어보자 - 1편 본문

개인브랜드블로그를 만들어 보자/엑셀VBA

엑셀 VBA 기본 - 잠긴 엑셀시트를 풀어보자 - 1편

Lostinformation 2021. 2. 3. 12:19

모두가 칼퇴하는 그날까지~

 

지난 글에서는

웹상의 이미지 주소만으로 

원하는 위치에, 원하는 

파일 포맷으로 저장하는 

방법에 대해

알려드렸습니다.

 

만일 저번 내용을 모르시거나

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2506

 

엑셀 VBA 기본 - 웹에서 이미지 가져와서 저장하기 - 3편

모두가 칼퇴하는 그날까지~ 지난 글에서는 웹상의 주소로 가져온 이미지의 사이즈를 셀 크기에 맞게 조절하는 방법에 대해 알려드렸습니다. 만일 저번 내용을 모르시거나 기억이 나질 않으신

red-s.tistory.com

 

이번 글에서는

엑셀 시트가 잠겼을 때

이를 푸는 방법에 대해

알려드리겠습니다.

 

일을 하다 보면

인수인계받은 엑셀이나

거래처에서 받은 엑셀이

잠겨있어서 보지 못하는데

연락까지 안 되고

당장 일을 진행하지 못해

짜증 나는 상황일 때가 

은근히 있습니다.

 

그럴 때 유용하게 

사용해보세요.

 

그럼 엑셀부터 실행해주세요.

 

먼저 이렇데 데이터는 보이지만

셀을 클릭하지 못하며 

수정도 불가능하고 

작업이 불가능한 상태로

잠겨있다면 가장 먼저

ALT+ F11을 눌러주세요.

 

 

그리고 모듈이 아닌

활성화된 시트에 

즉 풀어야 할 시트에 

이 내용을 적어주시거나

복사해서 붙여 넣으세요.

 

Sub PasswordBreaker()

    Dim i As Integer, j As Integer, k As Integer
    Dim l As Integer, m As Integer, n As Integer
    Dim i1 As Integer, i2 As Integer, i3 As Integer
    Dim i4 As Integer, i5 As Integer, i6 As Integer
        On Error Resume Next
        For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
        For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
        For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
        For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
        ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
        Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
        Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
        
        If ActiveSheet.ProtectContents = False Then
            MsgBox "One usable password is " & Chr(i) & Chr(j) & _
            Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
            Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
            Exit Sub
        End If
    Next: Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next: Next
End Sub

 

실행하게 되면

 

 

이렇게 풀리게 됩니다.

간단히 내용을 설명해드리면

 

for문을 여러 개 사용하여

암호에 사용할 텍스트를 

조합하고 암호를 생성하여

해제를 시도합니다.

 

그리고 암호가 풀리게 되면

해당 암호를 알려주게 되죠.

 

물론 예전 담당자가 설정한

암호가 아닌 엑셀 자체에서

내부적으로 만든 암호를

알려주는 것입니다.

 

만약 엑셀 2010부터

2016까지는 가능하지만

그 이전 버전 또는 그 이후

버전의 경우에는 다른 형태로

풀어줘야 합니다.

 

 

먼저 다른 이름의 저장한 후

파일 형식을 

Excel 97 - 2003 통합 문서로

저장해주세요.

 

그리고 위의 VBA를 실행시켜주면

엑셀의 잠금이 풀리게 되죠.

 

 

그다음 다시 다른 이름으로

저장을 한 후에

원래 버전의 파일 형식으로

저장해주시면 사용이 가능합니다.

 

만약 여기까지 했는데 

혹여나 수식이 깨지거나 

풀리지 않았다면 다음 글에서

다른 방법을 알려드리겠습니다.

 

그럼 여기까지 궁금하신 점은

댓글에 남겨주시고

공감구독도 부탁드립니다.

 

 

 

 

 

 

Comments