이전 글에서 수식이 입력된 셀의 수식을 보이지 않게 숨기는 기능의 속성인 FormulaHidden에 대해 알아보았습니다. 이번에는 워크시트의 일부만 입력 가능토록 설정하고 나머지 범위는 일기 전용으로 설정하는 Worksheet 개체의 ScrollArea 속성에 대해 알아보겠습니다.
엑셀 VBA 시트에 입력된 수식 모두 숨기는 속성 - FormulaHidden
1. ScrollArea 속성
ScrollArea 속성은 Worksheet 개체의 속성으로 입력이 가능한 범위를 설정할 때 사용합니다.
ScrollArea 속성으로 지정된 범위 이외의 셀은 읽기 전용이 되어 입력이 불가능하게 됩니다. 또한, 이 속성을 이용하여 입력 범위를 지정한 후 파일을 닫고 다시 열게 되면 설정 범위가 해제되어버립니다.
그러므로, 파일이 열릴때 바로 실행되도록 이벤트를 이용하면 항상 입력 범위가 지정된 상태를 유지할 수 있습니다.
2. 예제로 확인
이전 글에서 예제로 사용하였던 학생명부([그림 1])를 이용하여 ScrollArea에 대해 확인해 보겠습니다.
A~F 열에는 학생관련 기록을 입력해 놓았고 H5 셀에 찾고자 하는 학생 이름을 입력하면 H8:J8 범위의 각 셀에 해당하는 데이터를 찾아서 표시하도록 함수 VLOOKUP을 사용하였습니다.
H8 셀에는 다음과 같이 수식을 입력하였습니다.
=VLOOKUP(H5,표1[[이름]:[비상연락처]],2,FALSE)
표1은 B5:F16 범위를 지정하여 이름 정의로 명명한 표 이름입니다. VLOOKUP 함수를 사용하기 위해 범위를 이름 열부터 다시 잡았습니다.
ScrollArea 속성을 이용하여 H5셀에만 데이터 입력이 가능하도록 하고 다른 셀의 데이터는 수정하지 못하도록 설정하겠습니다.
VBE 창을 열고 모듈을 하나 생성합니다. 그리고, 다음 코드를 코드 창에 입력합니다.
Public Sub 입력제한()
Worksheets("학생명부").ScrollArea = "H5"
End Sub
Worksheets("학생명부").ScrollArea = "H5"
: 학생명부 워크시트의 H5 셀만 입력 가능하도록 설정하였습니다. H5 셀을 제외한 모든 셀은 입력이 불가능하게 됩니다.
위의 코드를 작성하고 실행을 하시고 학생명부 워크시트에서 H5 셀 이외의 셀을 마우스로 클릭하셔도 선택이 되지 않습니다. 그리고, 키보드로 학생 이름을 입력하면 H5 셀에 입력하신 내용이 나타나고 엔터를 치시면 해당 데이터가 뜨는 것을 보실 수 있습니다.
이제 입력 제한을 풀기 위해 다시 VBE 창으로 이동하셔서 모듈 하나를 생성하시고 다음과 같이 코드를 작성합니다.
Public Sub 입력제한해제()
Worksheets("학생명부").ScrollArea = ""
End Sub
위 코드를 입력하시고 실행하시면 다시 모든 셀을 선택하고 입력할 수 있게 됩니다.
'엑셀 > VBA' 카테고리의 다른 글
엑셀 VBA 인쇄시 머리글 및 바닥글 설정하기 속성 - PageSetup (0) | 2021.12.27 |
---|---|
엑셀 VBA 워크시트 인쇄하기 메서드 - PrintOut (0) | 2021.12.24 |
엑셀 VBA 시트에 입력된 수식 모두 숨기는 속성 - FormulaHidden (0) | 2021.12.23 |
엑셀 VBA 사용된 전체 셀 범위 확인하는 속성 - UsedRange (0) | 2021.12.23 |
엑셀 VBA 워크시트 숨기기 및 보호 메서드 - Visible, Protect (0) | 2021.12.22 |