엑셀 VBA에서 더블클릭(DoubleClick) 이벤트로 셀 데이터를 가져오는 방법

엑셀 VBA에는 WorkSheet와 관련된 여러가지 이벤트를 사용할 수 있도록 해당 이벤트를 미리 선언해 놓고 있습니다.

사용자는 필요한 이벤트를 불러와서 처리해야 할 동작을 정의하면 워크시트에서 해당 이벤트에 대한 동작이 작동하게 됩니다.
이벤트 중에 마우스 DoubleClick과 관련된 이벤트 처리는 의외로 많이 활용될 수 있습니다.
그래서 VBA의 이벤트 중에서 셀을 마우스로 더블클릭(Double Click) 했을 때 작동하는 BeforeDoubleClick 함수에 대한 설명을 해 보겠습니다.

이번 글에서는 엑셀 VBA에서 더블클릭(DoubleClick) 이벤트로 셀 데이터를 가져오는 방법에 대해 알아보겠습니다.

엑셀 VBA에서 마우스 DoubleClick 이벤트 처리로 셀 데이터 가져오기

1. 엑셀의 VBA 작업을 위해 리본의 [개발 도구]를 선태하고 코드 항목의 [Visual Basic]을 클릭합니다.

– 단축키 [Alt + F11]로 바로 VBA 화면을 열수도 있습니다.
– 리본에 [개발 도구]가 없다면 엑셀에서 VBA(매크로)를 처음으로 시작할 때 참고하세요. 글을 읽어보시면 됩니다.

2. 이때 통합문서에 시트가 많은 경우 작업중인 워크시트를 잘 확인해 둡니다. 예제에서는 [Sheet12]에서 작업중입니다.

엑셀 VBA에서 더블클릭(DoubleClick) 이벤트로 셀 데이터를 가져오는 방법 - Visual Basic 실행


▼ 여기서부터는 실제 VBA 화면에서 이루어지는 작업들 입니다.

3. VBA 화면의 [Microsoft Excel 개체]에서 작업 중인 시트를 더블 클릭해서 선택합니다.(①번)

4. 오른쪽 편집 창에서 ②번으로 표시된 부분을 클릭해서 [Worksheet]를 선택합니다.

5. ③번으로 표시된 부분에서 [BeforeDoubleClick]를 선택합니다.
BeforDoubleClick 이벤트를 선택하는 이유는 마우스 더블 클릭이 완성되기 직전에 해당 작업을 처리하기 위해서 입니다.

6. 그럼 편집창에 아래와 같은 이벤트 함수 코드가 자동으로 삽입됩니다.

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

7. 이제 Private Sub와 End Sub 사이에 필요한 동작을 VBA코드로 입력하면 됩니다.

8. 예제에서는 더블클릭한 셀의 데이터(값)를 가져와서 메시지박스로 띄우도록 했습니다.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox (ActiveCell.Value)
End Sub
 

▼ 위의 설명과 예제를 실제 Visual Basic(VBA)에서 적용한 화면입니다.

엑셀 VBA에서 마우스 더블클릭 이벤트 처리로 셀 데이터 가져오기 - BeforeDoubleClick 이벤트 처리

9. 이제 시트에서 셀을 더블클릭해 보겠습니다.

셀 [A3]을 더블 클릭해 보았습니다. 메시지 박스로 셀 데이터인 “김유신”이 나타나는 것을 확인할 수 있습니다.
(VBA에서 메시지 박스에 대한 좀 더 자세한 설명은 엑셀 VBA 기초 – MsgBox를 사용하여 메시지박스을 띄우고 활용하는 다양한 방법 글을 참고하세요)

엑셀 VBA에서 마우스 더블클릭 이벤트 처리로 셀 데이터 가져오기 - 실행 결과

10. 예제에서는 셀 데이터를 가져오도록 했지만 다양한 방법으로 응용할 수 있습니다.

예제처럼 셀 데이터를 가져와서 다른 후속 작업을 처리할 수도 있지만 더블 클릭한 셀의 글자 색이나 배경 색을 변경하거나 셀 데이터를 삭제하는 등의 작업을 수행할 수도 있습니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기