엑셀 VBA에는 WorkSheet와 관련된 여러가지 이벤트를 사용할 수 있도록 해당 이벤트를 미리 선언해 놓고 있습니다.
사용자는 필요한 이벤트를 불러와서 처리해야 할 동작을 정의하면 워크시트에서 해당 이벤트에 대한 동작이 작동하게 됩니다.
이벤트 중에 마우스 DoubleClick과 관련된 이벤트 처리는 의외로 많이 활용될 수 있습니다.
그래서 VBA의 이벤트 중에서 셀을 마우스로 더블클릭(Double Click) 했을 때 작동하는 BeforeDoubleClick 함수에 대한 설명을 해 보겠습니다.
이번 글에서는 엑셀 VBA에서 더블클릭(DoubleClick) 이벤트로 셀 데이터를 가져오는 방법에 대해 알아보겠습니다.
엑셀 VBA에서 마우스 DoubleClick 이벤트 처리로 셀 데이터 가져오기
1. 엑셀의 VBA 작업을 위해 리본의 [개발 도구]를 선태하고 코드 항목의 [Visual Basic]을 클릭합니다.
– 단축키 [Alt + F11]로 바로 VBA 화면을 열수도 있습니다.
– 리본에 [개발 도구]가 없다면 엑셀에서 VBA(매크로)를 처음으로 시작할 때 참고하세요. 글을 읽어보시면 됩니다.
2. 이때 통합문서에 시트가 많은 경우 작업중인 워크시트를 잘 확인해 둡니다. 예제에서는 [Sheet12]에서 작업중입니다.
▼ 여기서부터는 실제 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)에서 적용한 화면입니다.
9. 이제 시트에서 셀을 더블클릭해 보겠습니다.
셀 [A3]을 더블 클릭해 보았습니다. 메시지 박스로 셀 데이터인 “김유신”이 나타나는 것을 확인할 수 있습니다.
(VBA에서 메시지 박스에 대한 좀 더 자세한 설명은 엑셀 VBA 기초 – MsgBox를 사용하여 메시지박스을 띄우고 활용하는 다양한 방법 글을 참고하세요)
10. 예제에서는 셀 데이터를 가져오도록 했지만 다양한 방법으로 응용할 수 있습니다.
예제처럼 셀 데이터를 가져와서 다른 후속 작업을 처리할 수도 있지만 더블 클릭한 셀의 글자 색이나 배경 색을 변경하거나 셀 데이터를 삭제하는 등의 작업을 수행할 수도 있습니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
이 글이 도움이 되었기를 바랍니다. ^-^