나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 조삿갓 (choga21)

추천:  2
파일:     조회:  1253
제목:   통합문서의 암호를 읽으려면?
     
  - 엑셀 버전(2016):

* 아래줄에 질문을 작성하세요 >>

사용자의 정보 보호를 위해서

사용기간이 경과한 통합문서를 열면

이미 암호가 걸려 있는 경우는 그 암호를 그냥 두고

만일 아직 암호를 걸지 않은 상태라면

VB코드로 자동으로 암호(생년월일 등으로)를 설정하여 저장해주려고 합니다.

문제는

현재 통합문서(ThisWorkbook)에 암호가 걸려있는 상태인지 아닌지

알아낼 방법이 없다는 것입니다.

다음과 같이 하면 될 줄 알았는데...

--------------------
If ThisWorkbook.Password = "" Then
   ThisWorkbook.Password = Format(birth, "yymmdd")
   ThisWorkbook.Save
End If
ThisWorkbook.Close
------------------------

보기 좋게 실패하였습니다.

직접실행모드로 확인해 보니

? ThisWorkbook.Password

하면, 암호가 있으나 없으나 무조건 ********

라고 답하네요.

무슨 방법이 없나요?
 
[불량 게시물 신고]  
dew워크북에 설정된 암호는 보이지 않게 되어 있습니다.
그래서 Workbooks.Open 함수를 이용합니다.

sPwd = Format(birth, "yymmdd")
on error resume next
set wbk = workbooks.open(Filename, , , , sPws)
if wbk is nothing then
   msgbox Filename & " 해당 파일의 암호가 틀립니다."
   exit sub
else
   msgbox Filename & " 해당 파일의 암호는" & Spwd & "입니다."
endif
09-12 (09:40)
삭제 ■신고
조삿갓감사합니다. 그런데...
문제는 해당코드를 포함하고 있는 바로 그 통합문서(ThisWorkbook)을 대상으로 작업이 이루어져야 한다는 것이죠. ㅠ.ㅠ
이미 열려 있는데 그냥 또 열려고 하면
암호가 틀려서 오류가 발생하는 게 아니고 같은 이름의 문서를 또 열려고 해서 오류가 발생할 거고....
09-12 (21:11)
삭제 ■신고
조삿갓현재 문서에 암호가 설정된 상태인지 아닌지만 알아내면 되는데...09-13 (00:19)
삭제 ■신고
dew암호가 설정된 상태인지 확인하는 방법은 아래 속성을 확인하여 값이 0보다 크면 암호가 설정된 상태이고 0이면 암호가 설정되지 않은 상태입니다.

If ThisWorkbook.PasswordEncryptionKeyLength > 0 Then
    MsgBox "암호 설정된 상태임"
Else
    MsgBox "암호 설정 안된 상태임"
End If
09-13 (10:13)
삭제 ■신고
조삿갓우와~~
감사합니다.

오늘 새벽 1시가 되도록 코드와 씨름했는데...

바로 제가 원하던 답이네요.
감사합니다.
09-13 (20:48)
삭제 ■신고
        
  

작성일 : 2018-09-11(21:38)
최종수정일 : 2018-09-11(21:38)