Please Enable JavaScript!
Gon[ Enable JavaScript ]

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

엑셀(Excel)/VBA
반응형

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

 

 

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

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

 

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

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

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 Excel 배경색 일괄 변경하기
엑셀 Excel 정렬 기준 색으로 데이터 정렬하기
엑셀(Excel) 셀에 입력된 라인, 배경색을 인쇄하고 싶지 않을
엑셀 Excel 시트 배경색 추가 제거하기
셀 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 시트 더블클릭 이벤트로 셀에 배경색 변경하는 방법

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 Excel 배경색 일괄 변경하기
엑셀 Excel 정렬 기준 색으로 데이터 정렬하기
엑셀(Excel) 셀에 입력된 라인, 배경색을 인쇄하고 싶지 않을
엑셀 Excel 시트 배경색 추가 제거하기
셀 VBA 배경색 적용하는 다양한 방법
반응형
Posted by 녹두장군1
,