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

엑셀(Excel)/VBA

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

 

환경: Microsoft Excel 2013

 

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 영역을 선택했을 때 이벤트 처리하는 방법

 

Posted by 녹두장군