ExcelVBA 보호를 해제하는 방법
Excel VBA 보호란?
MS-Office에서는 VBA(Visual Basic for Applications)로 프로그래밍할 수 있습니다. 이렇게하면 다양한 기능을 확장 할 수 있지만 VBA에 암호를 설정할 수 있습니다. 비밀번호가 설정된 VBA 프로그램 코드는 더 이상 탐색하거나 변경할 수 없습니다. 이것은 VBE(Visual Basic Edtor)를 시작하고 도구(T) > VBAProject 속성(E) > 보호로 표시되는 다음 대화 상자에서 설정합니다.
이 비밀번호를 해제하는 방법에 대해 여러가지 조사했으므로, 메모로서 기사를 남겨 둡니다.
Excel VBA 암호를 해제할 수 있습니까?
결론으로 가능합니다. 또 보호해야 할 프로그램 코드나 리터럴은 암호화되어 있지 않기 때문에 해제할 수 없어도 어쨌든 내용을 읽어 버립니다. VBA의 비밀번호는 사용자가 실수로 내용을 변경하거나 하지 못하게 하는 풀프루프(안전대책) 정도의 역할을 할 수 없다고 생각해야 합니다.
왜 해제하고 싶습니까?
사람 각각 다양한 동기가 있는 것 같습니다.
사내에 오래된 응용 프로그램으로, 아무도 암호를 모른다.
많은 사람들이 이것으로 곤란한 것 같습니다.
VBS와 같은 외부 스크립트에서 조작하고 싶습니다.
VBA에 암호가 설정되어 있으면 CreateObject()를 사용하여 외부에서 액세스하려는 경우에도 제한이 걸립니다. 이것이 폐해가 되고 있는 경우도 있는 것 같습니다.
해제 방법 일람
처음에는 특정 객체에 비밀번호를 설정하는 VBA의 표준 메서드가 있다고 생각했지만 찾지 못했습니다. 그 반면, 여러가지 방법이 있는 것 같습니다.
바이너리 파일을 다시 작성하여 비밀번호를 사용하지 않도록 설정
엑셀 파일내에는 "DPB="
라는 캐릭터 라인이 존재하고 있어, 이 뒤에 오는 캐릭터 라인이 암호화된 패스워드입니다. 이를 다시 쓰고 암호를 비활성화합니다. 또는 새 암호를 설정하는 방법입니다.
결론으로 가능합니다. 또 보호해야 할 프로그램 코드나 리터럴은 암호화되어 있지 않기 때문에 해제할 수 없어도 어쨌든 내용을 읽어 버립니다. VBA의 비밀번호는 사용자가 실수로 내용을 변경하거나 하지 못하게 하는 풀프루프(안전대책) 정도의 역할을 할 수 없다고 생각해야 합니다.
왜 해제하고 싶습니까?
사람 각각 다양한 동기가 있는 것 같습니다.
사내에 오래된 응용 프로그램으로, 아무도 암호를 모른다.
많은 사람들이 이것으로 곤란한 것 같습니다.
VBS와 같은 외부 스크립트에서 조작하고 싶습니다.
VBA에 암호가 설정되어 있으면 CreateObject()를 사용하여 외부에서 액세스하려는 경우에도 제한이 걸립니다. 이것이 폐해가 되고 있는 경우도 있는 것 같습니다.
해제 방법 일람
처음에는 특정 객체에 비밀번호를 설정하는 VBA의 표준 메서드가 있다고 생각했지만 찾지 못했습니다. 그 반면, 여러가지 방법이 있는 것 같습니다.
바이너리 파일을 다시 작성하여 비밀번호를 사용하지 않도록 설정
엑셀 파일내에는 "DPB="
라는 캐릭터 라인이 존재하고 있어, 이 뒤에 오는 캐릭터 라인이 암호화된 패스워드입니다. 이를 다시 쓰고 암호를 비활성화합니다. 또는 새 암호를 설정하는 방법입니다.
처음에는 특정 객체에 비밀번호를 설정하는 VBA의 표준 메서드가 있다고 생각했지만 찾지 못했습니다. 그 반면, 여러가지 방법이 있는 것 같습니다.
바이너리 파일을 다시 작성하여 비밀번호를 사용하지 않도록 설정
엑셀 파일내에는
"DPB="
라는 캐릭터 라인이 존재하고 있어, 이 뒤에 오는 캐릭터 라인이 암호화된 패스워드입니다. 이를 다시 쓰고 암호를 비활성화합니다. 또는 새 암호를 설정하는 방법입니다.SendKeys를 사용하여 암호를 자동으로 입력하는 방법
키보드 동작을 API로 에뮬레이트하고 비밀번호를 자동으로 입력합니다. 미리 비밀번호를 알고 있는 것이 전제입니다.
비밀번호 평가 함수의 반환값 변경
VBA는 암호로 보호 된 스크립트 등에 액세스 할 때 암호를 입력하는 대화 상자를 표시합니다. 그 함수의 반환값을 억지로 재기록해 통과시키는 기술입니다.
요약
Excel VBA의 암호를 해제할 수 있습니다. 그러나 VBA 자체가 메소드를 제공하는 것은 아니기 때문에 여러 가지 궁리가 필요합니다.
이번에 저는 최종 납품물이 패스워드 보호된 엑셀 파일인 프로젝트에서 어떻게 버전 관리하고 언제 패스워드를 설정하는가 하는 문제를 해결하는 과정에서 해제 방법에 대해 조사했습니다. 비밀번호의 자동 설정에 대해서도 조사했으므로, 또 그 중 기사로 하고 싶습니다.
Reference
이 문제에 관하여(ExcelVBA 보호를 해제하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsumoto_sp/items/d576a4e1c5a1c65f8f9f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ExcelVBA 보호를 해제하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/matsumoto_sp/items/d576a4e1c5a1c65f8f9f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)