VBA excel - 사용자가 즉시 실행 창에서 매크로를 호출/실행할 수 없도록 하는 방법이 있습니까?

VBA excel - 사용자가 즉시 실행 창에서 매크로를 호출/실행할 수 없도록 하는 방법이 있습니까?

그래서 VBA 응용 프로그램을 작성하고 VBAProject를 잠갔습니다(볼 수 없음). 그러나 물론 사용자는 직접 실행 창에 계속 액세스할 수 있습니다(예를 들어 다른 Excel 파일을 열고 내 VBAProject를 클릭하면 잠긴 경우에도 마찬가지입니다). 내 VBAProject가 잠겨 볼 수 없음에도 불구하고 사용자는 다른 Excel을 열어서 내 직접 실행 창에 액세스하여 내 매크로를 실행하거나 일부 코드를 입력하여 실행할 수 있습니다. 물론 그들은 내가 매크로 이름을 어떻게 지정했는지 모르지만 아마도 코드를 실행하여 이름 목록(프로시저 이름)을 얻을 수 있을 것입니다. 그렇다면 사용자가 내 VBAProject 직접 창에서 코드를 실행하거나 매크로를 호출하는 것을 방지할 수 있습니까?

답변1

짧은 대답: Private키워드를 사용하십시오.

더 긴 대답: 소스 코드를 보호할 수 있는 유일한 방법은 소스 코드를 절대 공개하지 않는 것입니다.

긴 답변: VBA 편집기에 대한 액세스를 적극적으로 차단하는 VBA 프로젝트를 만드는 것이 가능합니다. 그러나 이는 비윤리적이며 프로젝트 비밀번호 이상으로 소스 코드를 보호하지 않습니다.

Workbook.Close통합 문서를 연 후 즉시 닫는 오래된 장난을 생각해 보십시오 . 사용자가 해야 할 일은 매크로를 비활성화하고 통합 문서를 다시 여는 것뿐입니다. VBA로 작성하는 모든 항목에도 마찬가지입니다. VBA를 사용하여 보안 작업을 수행하는 경우 매크로가 비활성화되면 보안이 종료됩니다.

이를 프로젝트 비밀번호로 얻을 수 있는 보안과 비교해 보세요. 물론, 비밀번호를 해독하는 것은 대부분의 개발자에게 사소한 일이지만, 더 많은 노력이 필요하고 대부분의 일반 사용자가 이를 중단하게 됩니다. 중요한 것은 이것이 귀하와 귀하의 소프트웨어를 존중받는 측면에 유지한다는 것입니다.

VBA 대신 또는 VBA와 함께 외부 도구를 사용하는 것에 대한 대화가 있지만 이는 귀하가 요청한 질문보다 훨씬 더 복잡합니다. 이는 또한 귀하가 제안한 대로 동작하는 경우 악성 코드라는 용어의 모든 정의를 충족합니다.

관련 정보