VBA 에서는 시트와 관련된 이벤트가 이미 준비되어 있습니다. 사용자는 몇 번의 클릭으로 시트에서 일어나는 이벤트를 가로채서 자신이 원하는 기능을 구현할 수 있습니다. 그 중 하나가 셀을 마우스로 더블클릭 했을 때 일어나는 이벤트에 관련된 함수 입니다. 함수명은 BeforeDoubleClick 입니다.
▼ 시트와 관련된 이벤트 함수에 기능을 구현하기 위해서는 해당하는 함수를 추가해야 합니다. 왼쪽 프로젝트 탐색기에서 시트를 선택합니다. 그리고 오른쪽으로 가서 왼쪽 상단 콤보 박스를 클릭해서 Worksheet 를 선택합니다.
▼ 그럼 바로 오른쪽 옆 콤보 박스에 Worksheet 와 관련된 이벤트 함수 목록이 나타납니다. 이곳에 있는 함수들이 사용자가 관여할 수 있는 것들입니다. 이 중에서 마우스 더블 클릭했을 때 이벤트는 BeforeDoubleClick 입니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 Excel 셀 배경색 일괄 변경하기 ▶ 엑셀 Excel 정렬 기준 셀 색으로 데이터 정렬하기 ▶ 엑셀(Excel) 셀에 입력된 라인, 배경색을 인쇄하고 싶지 않을 때 ▶ 엑셀 Excel 시트 탭 배경색 추가 및 제거하기 ▶ 엑셀 VBA 셀 배경색 적용하는 다양한 방법 |
▼ BeforeDoubleClick 를 선택하면 바로 아래에 함수 원형이 생성됩니다. 두 개의 인수 중에서 첫 번째 Target 은 사용자가 마우스로 더블 클릭한 셀 영역을 가리킵니다. 제대로 이벤트를 가로 채는지 알아 보기 위해 셀의 색상을 변경하는 함수를 넣었습니다. 더블 클릭하면 셀은 빨간색으로 변경됩니다.
▼ 두 번째 인수인 Cancel 은 더블 클릭했을 때 커서가 셀에 머물 것인지 결정하는 변수 입니다. Cancel 을 그대로 두면 더블 클릭하고 커서가 빠져 나오도록 한번 더 클릭해야 합니다. 그래서 커서가 머물지 않도록 Cancel 을 True 로 설정해 줘야 합니다.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Interior.Color = vbRed
Cancel = True
End Sub
▼ 한가지 기능을 더 추가했습니다. 빨간색으로 색깔이 있는 경우 한번 더 클릭하면 원래 대로 돌아가게 만드는 것입니다. 서식을 삭제하는 상수는 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
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 Excel 셀 배경색 일괄 변경하기 ▶ 엑셀 Excel 정렬 기준 셀 색으로 데이터 정렬하기 ▶ 엑셀(Excel) 셀에 입력된 라인, 배경색을 인쇄하고 싶지 않을 때 ▶ 엑셀 Excel 시트 탭 배경색 추가 및 제거하기 ▶ 엑셀 VBA 셀 배경색 적용하는 다양한 방법 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 함수 Join 배열 합치기 (1) | 2024.05.01 |
---|---|
엑셀 VBA 숫자를 문자열로 바꾸는 여러가지 방법 (1) | 2024.04.27 |
엑셀 VBA 문자열 분할 함수 Split 사용하기 (1) | 2024.04.21 |
엑셀 VBA 워크시트, 셀 선택되었을 때 실행되는 이벤트 함수 구현하기 (1) | 2024.04.13 |
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음 (0) | 2024.04.02 |
엑셀 VBA 날짜 함수 CDate 문자열을 날짜로 변환 (0) | 2024.03.28 |
엑셀 VBA GoTo 문 이용해서 줄로 분기하기 (2) | 2024.03.23 |
엑셀 VBA Function 와 Sub 프로시저의 차이점과 사용법 알아 보기 (1) | 2024.03.16 |