엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하는 방법

엑셀(Excel)/VBA

엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하는 방법

 

환경: Microsoft Excel 2013

 

VBA 에서는 시트와 관련된 이벤트가 이미 준비되어 있습니다. 사용자는 몇 번의 클릭으로 시트에서 일어나는 이벤트를 가로채서 자신이 원하는 기능을 구현할 수 있습니다. 그 중 하나가 셀을 마우스로 더블클릭 했을 때 일어나는 이벤트에 관련된 함수 입니다. 함수명은 BeforeDoubleClick 입니다.

 

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

엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하는 방법

 

그럼 바로 오른쪽 옆 콤보 박스에 Worksheet 와 관련된 이벤트 함수 목록이 나타납니다. 이곳에 있는 함수들이 사용자가 관여할 수 있는 것들입니다. 이 중에서 마우스 더블 클릭했을 때 이벤트는 BeforeDoubleClick 입니다

엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하는 방법

 


BeforeDoubleClick 를 선택하면 바로 아래에 함수 원형이 생성됩니다. 두 개의 인수 중에서 첫 번째 Target 은 사용자가 마우스로 더블 클릭한 셀 영역을 가리킵니다. 제대로 이벤트를 가로 채는지 알아 보기 위해 셀의 색상을 변경하는 함수를 넣었습니다. 더블 클릭하면 셀은 빨간색으로 변경됩니다

엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하는 방법

 

두 번째 인수인 Cancel 은 더블 클릭했을 때 커서가 셀에 머물 것인지 결정하는 변수 입니다. Cancel 을 그대로 두면 더블 클릭하고 커서가 빠져 나오도록 한번 더 클릭해야 합니다. 그래서 커서가 머물지 않도록 Cancel True 로 설정해 줘야 합니다.

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Target.Interior.Color = vbRed

    Cancel = True

End Sub

엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하는 방법

 

한가지 기능을 더 추가했습니다. 빨간색으로 색깔이 있는 경우 한번 더 클릭하면 원래 대로 돌아가게 만드는 것입니다. 서식을 삭제하는 상수는 xlNone 입니다.

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Target.Interior.Color = vbRed Then

        Target.Interior.Color = xlNone

    Else

        Target.Interior.Color = vbRed

    End If

    Cancel = True

End Sub

엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하는 방법

저작자 표시 비영리 변경 금지
신고
Posted by 녹두장군