엑셀에서 워크시트가 활성화되는 순간과 셀이 선택되었을 때 발생하는 이벤트를 이용해서 팝업 창을 띄우는 예제를 구현해 보겠습니다. 해당 예제를 학습해 두었다가 자신의 상황에 맞게 응용해 보시기 바랍니다.
◎ 셀 선택 이벤트 구현하기 |
▼ 먼저 VBA에서 셀을 선택했을 때 발생하는 이벤트를 통해 셀 값을 팝업창에 표시해 보겠습니다. VBA 편집 에디터를 띄우기 위해 개발 도구 > Visual Basic 리본 메뉴를 클릭합니다.
▼ 왼쪽 사이드 탐색기에서 샘플을 구현할 시트를 더블 클릭합니다. 그리고 오른쪽 편집창으로 이동합니다.
▼ 셀 선택 이벤트 함수를 만들기 위해 왼쪽 콤보박스에서 Worksheet 를 선택합니다. 현재 시트에는 다른 컨트롤들이 없기 때문에 Worksheet 만 보입니다.
▼ 다음은 이벤트 함수를 골라야 합니다. 셀 선택 이벤트 함수는 SelectChange() 입니다. 오른쪽상단 콤보박스에서 SelectionChange() 함수를 선택합니다.
▼ 에디터 화면에 함수가 생성되면 팝업창에 셀 값을 표시하는 소스를 추가합니다. 아래 소스는 인수로 넘어온 Target 객체를 팝업창에 표시합니다. Target 이 바로 셀에 들어가 있는 값입니다. If 함수로는 여러 셀을 드래그해서 선택했는지 여부를 체크하기 위한 용도입니다. 2개 이상의 셀을 선택했다면 if 로 걸러 냅니다. 선택한 셀 개수는 Target.Cells.Count 로 알 수 있습니다.
▼ 소스는 다음과 같습니다.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.count > 1 Or IsEmpty(Target) Then
Exit Sub
Else
MsgBox "현재셀의 값 : " & Target
End If
End Sub
▼ 이렇게 작업한 소스는 매크로에 해당하기 때문에 파일 확장자를 변경해서 저장해야 합니다. Ctrl + S 를 눌러 저장을 시도합니다. 그러면 화면에 매크로 파일 형식으로 저장할 것인지 묻습니다. 여기서 헷갈리시는 분들이 있는데 작성한 매크로 소스를 저장하기 위해서는 아니요 를 눌러야 합니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 ▶ 엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하기 ▶ 엑셀 VBA 영역을 선택했을 때 이벤트 처리하기 ▶ 엑셀 VBA 개체, 속성, 함수, 이벤트 사용법과 사례 검색해서 참고하기 ▶ 엑셀 VBA 매크로 소스 주석 Comments 넣는 방법 |
▼ 화면에 파일 저장 대화상자가 뜨면 파일 형식을 매크로 소스 저장이 가능한 xlsm 으로 변경합니다.
▼ 이제 워크시트로 돌아가서 제대로 동작하는지 테스트해 봅니다. 셀을 선택하면 그림처럼 팝업창이 뜨면서 현재 선택한 셀 값을 표시할 겁니다.
◎ 워크시트 이벤트 구현하기 |
▼ 두 번째는 워크시트가 활성화될 때 실행되는 이벤트를 구현해 보겠습니다. 이벤트 함수는 Activate 입니다. 오른쪽 콤보박스에서 Activate 를 선택하고 함수를 생성합니다.
▼ 함수 내부에 선택되었다는 메시지창을 보여주기 위해 MsgBox 를 추가합니다.
▼ 결과는 다음과 같습니다. 소스가 구현되어 있는 워크시트를 선택하면 그림과 같이 팝업창이 뜹니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 ▶ 엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하기 ▶ 엑셀 VBA 영역을 선택했을 때 이벤트 처리하기 ▶ 엑셀 VBA 개체, 속성, 함수, 이벤트 사용법과 사례 검색해서 참고하기 ▶ 엑셀 VBA 매크로 소스 주석 Comments 넣는 방법 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 통화 형식 지정 함수 FormatCurrency 사용하기 (0) | 2024.05.02 |
---|---|
엑셀 VBA 함수 Join 배열 합치기 (1) | 2024.05.01 |
엑셀 VBA 숫자를 문자열로 바꾸는 여러가지 방법 (1) | 2024.04.27 |
엑셀 VBA 문자열 분할 함수 Split 사용하기 (1) | 2024.04.21 |
엑셀 VBA 시트 더블클릭 이벤트로 셀에 배경색 변경하기 (2) | 2024.04.11 |
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음 (0) | 2024.04.02 |
엑셀 VBA 날짜 함수 CDate 문자열을 날짜로 변환 (0) | 2024.03.28 |
엑셀 VBA GoTo 문 이용해서 줄로 분기하기 (2) | 2024.03.23 |