엑셀 VBA 특정 날짜 이후 비밀번호 박스 출력 삭제

엑셀의 VBA를 이용하여 특정 날짜까지만 엑셀 문서를 사용할 수 있고 그 이후에는 메시지 박스를 띄워 사용기간이 지났으니, 비밀번호를 입력하여야 사용이 가능하고 만약 비밀번호가 틀리면 지정한 셀 영역의 모든 데이터를 지우게 하는 VBA 코드입니다.

이렇게 만들어 사용한 이유는 이전 직장에서 한 지점만 있는 것이 아니라 여러 지점에서 보통 100명 이상의 스케쥴을 관리하여야 했기 때문에 만들어 배포하였으나 프로그램을 사용하는 사람이 개인이 편리하게 사용한다고 수정하고 복사한 것이 프로그램의 고유 경로와 링크, 셀 영역의 지정 함수 등이 이동 변경되어 수시로 A/S 요청이 있어 이런 수정과 복사, 직장 이외에 유출되지 않고 사용하도록 하기 위함이었습니다.

엑셀 VBA 특정 날짜 이후 비밀번호 박스 출력 삭제
엑셀 VBA 특정 날짜 이후 비밀번호 박스 출력 삭제

엑셀 VBA 코드 분석

엑셀 파일 실행시 자동 실행

설명 : 자동 실행 및 변수선언

Sub auto_open() : 문서을 열때 자동 실행
Dim WS As Worksheet : 변수선언
Dim Kabzeel_Title As String : 변수명
Dim Kabzeel_Day As Date : 날짜와 시간값
Dim Kabzeel_Top As String : 텍스트 문자열
Dim Kabzeel_Capyright As String : 텍스트 문자열
Dim Kabzeel_T As String : 텍스트 문자열

여섯 개의 변수를 미리 선하고 엑셀 통합 문서가 열릴 때 자동으로 실행되며 이는 각각 변수의 워크시트 개체, 제목, 날짜, 상단 문구, 저작원 문구, 문자열을 저장

카피라이터 출력

설명 : Capyright

Kabzeel_Day : 날짜와 시간 반환
Kabzeel_Title : 타이틀 출력
Kabzeel_Capyright : 카피라이터 출력
Kabzeel_Capyright2 : 카피라이터 출력

Kabzeel_Capyright에 저작권 및 사용 관련 안내 문구를 저장하여, 나중에 이 정보들을 메시지 박스, 셀, 또는 사용자 인터페이스의 다른 부분에 표시

시트별 비밀번호 생성 잠금

설명 : 비밀번호 설정

Sheet3.Name : 시트마다 비밀번호 자동입력
Protect “0000” : 비밀번호 입력
Next : 루프의 끝

VBA 코드 스니펫은 각 워크시트를 반복하여 특정 조건이 만족하지 않는 다면 시트를 숨기고 보호하며, 숨긴 엑셀 시트는 사용자가 쉽게 볼 수 없도록 하고, “0000” 비밀번호는 사용자가여 무단 수정을 하지 못하도록 방지하기 위한 목적으로 실행합니다.(Sheet3 ~ Sheet8)

메세지 박스 출력하기

설명 : 사용기간이 지났습니다.

Format : 현재 날짜가 2025년 3월 20일 보다 늦은지 확인
MsgBox : 조건이 참이면 메시지 상자 출력
strPW : 사용기간 만료 메시지 표시후 입력 상자 출력

틀릴경우 모두 삭제

설명 : 같지 않으면 모두 삭제

Cells(2, 9) : 여기가 맞아야하고
Cells(2, 2) : 같지 않으면
Cells(75, 2) : 같지 않으면

Cells(2, 2) = ” 1900-01-04 ” : 출력 문구
Cells(4, 2) = Kabzeel_Top : 출력 문구
Cells(4, 7) = ” 1900-01-04 ” : 출력 문구

Range(“C6:Q6”).Value = “” : 모두 삭제
Range(“AA6:AK6”).Value = “” : 모두 삭제
Range(“AM6:BA6”).Value = “” : 모두 삭제

Range(“BD6:BR6”).Value = “” : 모두 삭제
Range(“CB6:CL6”).Value = “” : 모두 삭제
Range(“CN6:DB6”).Value = “” : 모두 삭제

Range(“B5:DB73”).Value = “” 사용하여도 됩니다.

즉 셀값이 “ⓒ : KABZEEL”과 같다면 B2셀에 현재 날짜와 시간, B75 셀에 저작권 정보를 입력하고 위의 “ⓒ : KABZEEL”이 아니라면 B2셀과 G4셀에 고정된 날짜 문자열 “1900-01-04″를 출력하고 B4에는 Kabzeel_Top 변수 값을 입력, 그리고 6행의 C6:Q6, AA6:AK6등의 모든 내용을 지워서 빈 셀로 만들어 버립니다.

하지만 위 방법은 다소 지루한 경우가 있습니다. 그래서 간편하게 엑셀 파일을 외부 노출이 되지 않게 하기 위해 맥주소를 이용하는 경우와 지정된 절대 경로를 이용하기도 합니다.
다음 글에서는 엑셀 파일을 USB나 무단 복제하여 외부에서 열어 보지 못하도록 하는 방법에 대해서 소개하겠습니다.

엑셀 VBA MsgBox 메시지 박스 사용 예제
엑셀 VBA를 이용한 자료 검색 팝업 박스 출력

목차