• 최초 작성일: 2006-06-02
  • 최종 수정일: 2026-09-30
  • 조회수: 20 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 특정 영역에서만 스크롤되게 하기

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

질문 하나

제가 특정 영역만 스크롤 할 수 있게 하고 싶은데요.. Workbook open 이벤트에 scrollarea를 사용해서 작성했습니다.

그런데 엑셀 열때 매크로 제외로 하니... open 이벤트가 먹질 않는데... 메크로 제외로 열더라도 스크롤을 특정영역에만 할수 있게 할 수 있는 방법이 없을런지요...

감사합니다.

또 비슷한 질문…

엑셀 메뉴에서 틀고정은 현재의 활성화 된 셀 하단 만 스크롤의 영향을 받게 되어있습니다.

혹시 이게 반대로 될 수 있는 방법은 없을까요?

상단만 스크롤 되는 방법 아시면 답글 바랍니다.

계속 질문만 올려서.. 죄송합니다

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

특정 영역에서만 스크롤되게 하기

핵심 요약: 지정한 영역에서만 이동·스크롤하기

워크시트의 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"처럼 영역의 주소를 직접 문자열로 지정할 수 있습니다.

마치며

간단한 내용이지만 다른 사람이 손대면 안 되는 데이터나 파일에 유용하게 활용할 수 있습니다.