[ 엑셀에서 시트명 변경 방지 방법 ]
* 엑셀에서 Visual Basic 프로그램을 사용하려면 프로그램 내부에 시트명이 사용되는데 만약, 사용자가 프로그램에서 시트를 사용하여 프로그램을 만든 후 임으로 시트명을 변경해 버리면 프로그램이 해당 시트를 인식하지 못하여 정상적으로 실행되지 않게 된다.
* 엑셀에서 시트 이름 변경 방지하는 방법은 2가지가 있다.
1) 엑셀 메뉴에서 설정하는 방법
엑셀 -> 검토 -> 통합 문서 보호 버튼을 클릭 후 '구조 및 창 보호' 탭에서 암호를 걸어 놓으면 된다.
* 암호 입력하여 시트 이름 변경이 방지된 경우 '통합 문서 보호' 버튼이 선택되어 있고, 해당 시트에 마우스 우클릭하여도 '이름 바꾸기' 메뉴가 비활성화되어 있다.
* 시트 이름 변경 방지를 해제하려면 엑셀 -> 검토 -> 통합 문서 보호 버튼을 다시 클릭 후 지정된 암호를 입력해 주면 된다.
* 단점은 비밀번호를 잊어버리면 곤란한 상황이 생길 수 있고, 새로운 시트를 추가하는 것까지 차단되기 때문에 불편하다.
2) VBA에서 설정하는 방법
* 시트명을 VBA에서 강제로 지정하기 때문에 사용자가 시트명을 바꾸더라도 지정된 시트명으로 되돌아가게 할 수 있다.
* 원하는 시트명에서 마우스 우크릭 -> '코드 보기' 메뉴 클릭하면 VB 편집기가 실행되고 해당 시트명에 대한 스크립트 코드를 입력할 수 있는 상태가 된다.
* VB 편집기 상에서 해당 시트의 코드 입력창에 아래와 같이 스크립트 코드를 입력한 후 엑셀 화면으로 되돌아간다.
Private Sub worksheet_SelectionChange(ByVal Target As Excel.Range)
'Updateby Extendoffice
If ActiveSheet.Name <> "미니시트" Then
ActiveSheet.Name = "미니시트"
End If
End Sub
< VB편집기에 스크립트 코드 입력한 상태 >
< VB 편집기에서 스크립트 입력 후 엑셀 복귀 상태 >
* 이후부터는 엑셀에서 해당 시트명을 수작업으로 변경하더라도 VBA에서 지정된 시트명으로 되돌아간다.
'VBA' 카테고리의 다른 글
[가계부 만들기#12] VBA로 수입정보 Form만들기~ (0) | 2023.09.07 |
---|---|
[가계부 만들기#11] VBA로 거래내역 Form만들기~ (0) | 2023.09.07 |
[VBA] 엑셀에서 개발도구 활성화해 보자 (0) | 2023.08.15 |
[가계부 만들기#10] Excel 가져오기로 Access 테이블 만들기~ (0) | 2023.08.14 |
[가계부 만들기#9] MS Access에서 DB 테이블 만들기~ (0) | 2023.07.18 |