• 최초 작성일: 2025-01-24
  • 최종 수정일: 2026-09-27
  • 조회수: 16 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: VBA 파워 코딩 247회 - 스크롤 영역 제한

들어가기 전에

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

워크시트의 특정한 영역에서만 셀 포인터가 움직이도록 할 수 없느냐는 질문을 가끔 받습니다. 워크시트 개체의 ScrollArea 속성을 이용하면 간단히 해결할 수 있습니다.

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

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

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


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

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

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

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

특정한 영역 내에서만 스크롤되게 하는 Code

핵심 요약: ScrollArea로 셀 포인터 이동 범위 제한하기

워크시트의 ScrollArea 속성에 이름 정의나 셀 주소를 지정하면 그 영역 안에서만 스크롤됩니다. 빈 문자열을 지정하면 해제되고, EnableSelection 속성을 이용하면 모든 영역을 선택할 수 없게 만들 수도 있습니다.

  • 설정: ActiveSheet.ScrollArea = "WorkArea" 또는 "B9:C19"
  • 해제: ActiveSheet.ScrollArea = ""
  • 선택 불가: EnableSelection = xlNoSelection + Protect (UserInterfaceOnly)
  • 선택 제한 해제: EnableSelection = xlNoRestrictions

ScrollArea 속성으로 스크롤 영역 제한하기

예제 파일에서 '스크롤 영역 설정' 버튼을 클릭하면 포괄손익계산서의 '판매관리비' 영역(노란색) 내부에서만 스크롤되도록 설정합니다.

포괄손익계산서에서 노란색 판매관리비 영역 안에서만 스크롤되도록 설정하는 스크롤 영역 설정 버튼
아이엑셀러

'스크롤 영역 설정' 버튼에 연결된 코드입니다.

Sub SetScrollArea()
    ActiveSheet.ScrollArea = "WorkArea"        ' B9:C19 영역에 미리 이름 정의해 둠
End Sub

WorkArea라는 영역에서만 스크롤되죠? 사전에 이름 정의하지 않고 셀 주소를 직접 지정할 수도 있습니다.

ActiveSheet.ScrollArea = "B9:C19"

스크롤 영역 설정을 해제하려면 다음과 같이 스크롤 영역을 지정하지 않으면 됩니다.

ActiveSheet.ScrollArea = ""

EnableSelection 속성으로 선택 못 하게 하기

EnableSelection 속성을 이용하면 워크시트의 모든 영역을 선택할 수 없도록 할 수 있습니다. 다음 코드를 실행하면 현재 워크시트의 모든 영역을 선택할 수 없게 됩니다.

Sub SetScrollArea2()
    With ActiveSheet
        .EnableSelection = xlNoSelection
        .Protect contents:=True, userinterfaceonly:=True
    End With
End Sub

이 설정을 해제하기 위해서는 다음 코드를 사용합니다.

ActiveSheet.EnableSelection = xlNoRestrictions

참고: 이미지에 대하여

이 글은 원래 네이버 포스트에 게재되었던 글로, 네이버 포스트 서비스 종료로 네이버 블로그로 옮기는 과정에서 원본 이미지가 소실되었습니다. 위 이미지는 본문 설명을 바탕으로 당시 화면 구성을 재구성한 예시 이미지이며, 실제 엑셀 화면과 세부 디자인(버전별 UI)은 다를 수 있습니다. 이미지 속 계정과목과 금액은 예시입니다.

정리 — 스크롤 영역과 선택 제한 설정

하려는 일 코드
이름 정의한 영역으로 스크롤 제한 ActiveSheet.ScrollArea = "WorkArea"
셀 주소로 스크롤 제한 ActiveSheet.ScrollArea = "B9:C19"
스크롤 제한 해제 ActiveSheet.ScrollArea = ""
모든 영역 선택 불가 .EnableSelection = xlNoSelection + .Protect contents:=True, userinterfaceonly:=True
선택 제한 해제 ActiveSheet.EnableSelection = xlNoRestrictions

자주 묻는 질문 (FAQ)

Q1. 워크시트의 특정한 영역에서만 셀 포인터가 움직이게 할 수 있나요?

워크시트 개체의 ScrollArea 속성을 사용하면 됩니다. 예를 들어 ActiveSheet.ScrollArea = "B9:C19"라고 지정하면 해당 영역 안에서만 스크롤됩니다.

Q2. 스크롤 영역 설정을 해제하려면 어떻게 하나요?

스크롤 영역을 지정하지 않으면 됩니다. ActiveSheet.ScrollArea = ""와 같이 빈 문자열을 지정하세요.

Q3. 워크시트의 모든 영역을 선택할 수 없게 하려면 어떻게 하나요?

EnableSelection 속성에 xlNoSelection을 지정하고 Protect 메서드로 워크시트를 보호합니다. 해제할 때는 ActiveSheet.EnableSelection = xlNoRestrictions를 실행합니다.

마치며

속성 하나만 지정해도 셀 포인터가 움직이는 범위를 정해 둘 수 있습니다. 입력 양식을 만들 때 요긴하게 써 보세요!
VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 사이트 정문 왼쪽에 있는 'VBA 강좌 - VBA 입문강좌'를 읽어보시면 이해가 빠릅니다.