Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 영역을 선택했을 때 이벤트 처리하기

엑셀(Excel)/VBA
반응형

VBA 에서는 시트와 관련된 이벤트가 이미 준비되어 있습니다. 사용자는 몇 번의 클릭으로 시트에서 일어나는 이벤트를 가로채서 자신이 원하는 기능을 구현할 수 있습니다. 그 중 하나가 셀 영역을 선택했을 때 발생하는 이벤트입니다. 해당 이벤트 함수를 이용해서 선택한 영역만 배경색 칠해 보겠습니다. 함수명은 SelectionChange 입니다.

 

 

▼ 시트와 관련된 이벤트 함수에 기능을 구현하기 위해서는 해당하는 함수를 추가해야 합니다. 왼쪽 프로젝트 탐색기에서 시트를 선택합니다. 그리고 오른쪽으로 가서 왼쪽 상단 콤보 박스를 클릭해서 Worksheet 를 선택합니다.

엑셀 VBA 영역을 선택했을 때 이벤트 처리하는 방법

 

▼ 그럼 바로 오른쪽 옆 콤보 박스에 Worksheet 와 관련된 이벤트 함수 목록이 나타납니다. 이곳에 있는 함수들이 사용자가 관여할 수 있는 것들입니다. 이 중에서 셀을 드래그해서 선택하면 발생하는 이벤트는 SelectionChange 입니다. 

엑셀 VBA 영역을 선택했을 때 이벤트 처리하는 방법

 

▼ SelectionChange 를 선택하면 바로 아래에 함수 원형이 생성됩니다. 인수는 하나 입니다. Target 은 사용자가 마우스로 선택한 영역을 가리킵니다. 아래는 For Each 문을 이용해서 반복문을 돌면서 선택한 영역에 노란색으로 색깔을 입히는 소스 입니다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
    Dim rng As Range
    Dim cell As Range
   
    Set rng = Target
       
    For Each cell In rng
        cell.Interior.Color = vbYellow
    Next cell
 
End Sub

 

엑셀 VBA 영역을 선택했을 때 이벤트 처리하는 방법

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※
▶ 엑셀 VBA 통합 문서의 기본 이벤트 함수로 문서가 열릴 때 기능 구현하기
▶ 엑셀 VBA - 특정시트나 셀이 선택되었을 때 실행되는 이벤트 함수
▶ 엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하는 방법
▶ 엑셀 VBA 개발 도구를 이용해서 버튼 삽입하고 함수 연결하기
▶ 엑셀 VBA - 목록상자 컨트롤 이용하여 목록 조회, 선택하기
반응형
Posted by 녹두장군1
,