- 최초 작성일: 2006-06-02
- 최종 수정일: 2026-09-30
- 조회수: 20 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 특정 영역에서만 스크롤되게 하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
질문 하나
제가 특정 영역만 스크롤 할 수 있게 하고 싶은데요.. Workbook open 이벤트에 scrollarea를 사용해서 작성했습니다.
그런데 엑셀 열때 매크로 제외로 하니... open 이벤트가 먹질 않는데... 메크로 제외로 열더라도 스크롤을 특정영역에만 할수 있게 할 수 있는 방법이 없을런지요...
감사합니다.
또 비슷한 질문…
엑셀 메뉴에서 틀고정은 현재의 활성화 된 셀 하단 만 스크롤의 영향을 받게 되어있습니다.
혹시 이게 반대로 될 수 있는 방법은 없을까요?
상단만 스크롤 되는 방법 아시면 답글 바랍니다.
계속 질문만 올려서.. 죄송합니다
특정 영역에서만 스크롤되게 하기
핵심 요약: 지정한 영역에서만 이동·스크롤하기
워크시트의 ScrollArea 속성에 영역을 지정하면 그 영역 밖의 셀은 선택할 수 없게 됩니다. VBA로만 제어할 수 있으며 파일을 열 때마다 설정해야 합니다.
- 1단계: 이동을 허용할 영역에 이름(MyRange)을 정의합니다.
- 2단계: Auto_Open 프로시저에서 ScrollArea 속성에 영역 이름을 지정합니다.
- 3단계: 필요하면 EnableSelection 속성으로 선택 자체를 제한합니다.
Step 1: ScrollArea 속성이란?
워크시트의 특정 영역에서만 셀 포인터가 움직이도록 할 수 없느냐는 질문을 하시는 분이 간혹 계십니다.
워크시트의 ScrallArea 속성을 이용하면 가능합니다. 하지만 이 속성은 반드시 VBA로 제어가 되어야 제대로 작동할 수 있습니다.
버튼을 누른 다음, 노란색 영역(MyRange라고 사전에 이름을 정의하였습니다) 밖에 있는 셀을 한번 선택해 보세요.
아마도 본 강좌 파일을 열 때 '매크로 포함'으로 열었다면 노란색 밖의 영역은 절대로 선택할 수 없을 것입니다.
Step 2: 코드 살펴보기
사용된 코드는 다음과 같이 아주 간단합니다.
Sub auto_open()
With Worksheets("Workplace")
.ScrollArea = "MyRange"
' MyRange 라는 영역에서만 스크롤되도록 설정합니다. 이것을 [.ScrollArea = "$B$5:$F$20"]
' 와 같은 형태로 표현할 수도 있습니다.
' .EnableSelection = xlNoSelection
' 만약 EnableSelection 속성값을 xlNoSelection으로 설정하면 MyRange라는 영역을
' 선택 할 수도 없게 됩니다.
End With
End Sub
ScrollArea 속성의 주의점: ScrollArea 속성은 파일에 저장되지 않으므로 통합 문서를 열 때마다 다시 설정해야 합니다. 그래서 위와 같이 자동으로 실행되는 프로시저(또는 Workbook_Open 이벤트 프로시저)에 넣어 두는 것입니다. 질문에서처럼 매크로를 사용하지 않도록 하고 파일을 열면 이 코드가 실행되지 않아 셀 선택 범위가 제한되지 않습니다. 매크로에 의존하지 않고 선택을 막으려면 시트 보호 기능에서 '잠긴 셀 선택'을 허용하지 않도록 지정하고 이동해야 하는 셀만 잠금을 해제하는 방법을 이용할 수 있습니다.
간단한 내용입니다만, 다른 사람이 손대면 안되는 데이터나 파일에 대해 유용하게 사용할 수 있는 내용이 아닌가 싶습니다.
정리 — ScrollArea 코드 핵심
| 구분 | 사용한 코드 | 역할 |
|---|---|---|
| 자동 실행 | Sub auto_open() | 파일을 열 때 자동 실행 |
| 영역 지정 | .ScrollArea = "MyRange" | 이름 정의된 영역만 이동 허용 |
| 주소로 지정 | .ScrollArea = "$B$5:$F$20" | 영역 주소를 직접 지정 |
| 선택 제한 | .EnableSelection = xlNoSelection | 영역 선택 자체를 막음 |
자주 묻는 질문 (FAQ)
Q1. 매크로를 사용하지 않도록 열어도 ScrollArea가 유지되나요?
아니요. ScrollArea는 VBA로 설정해야 하고 파일에 저장되지도 않으므로, 매크로를 사용하지 않도록 열면 제한이 적용되지 않습니다.
Q2. 틀 고정과 ScrollArea는 어떻게 다른가요?
틀 고정은 화면의 특정 행과 열이 스크롤되지 않도록 고정하는 기능입니다. ScrollArea는 셀 포인터가 이동할 수 있는 영역 자체를 제한하는 속성입니다.
Q3. 영역을 지정할 때 이름 대신 주소를 쓸 수 있나요?
네, .ScrollArea = "$B$5:$F$20"처럼 영역의 주소를 직접 문자열로 지정할 수 있습니다.
마치며
간단한 내용이지만 다른 사람이 손대면 안 되는 데이터나 파일에 유용하게 활용할 수 있습니다.