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 녹두장군

댓글을 달아 주세요