특정 셀을 클릭하면 매크로가 동작하는 예제를 같이 해 봅시다.
1. 우선 Alt + F11 을 눌러서 VBA 편집창을 실행합니다.
2. 매크로 적용할 Sheet를 선택하여 더블 클릭하여 나온 창에 아래 코드를 Copy & Paste 합니다.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
If Not Intersect(Target, Range("b1")) Is Nothing Then
Call 매크로이름
End If
End If
End Sub
|
3. 매크로 만드는 법은 아시죠? 혹시 모르시는 분이 계실까봐 간단히 아래에 설명하겠습니다.
3-1) 개발 도구 > 매크로 기록을 클릭합니다.
3-2) 매크로 이름을 기억하기 쉽게 작성하고 확인버튼을 클릭합니다.
3-3) 이후에는 자신이 원하는 매크로 작업을 직접 시현하듯이 해주면 됩니다. 위의 예제에서는 셀의 항목으로 필터를 적용해 보여주는 간단한 작업입니다.
4. 매크로 문법에서 '연습매크로'라는 이름의 매크로를 실행시키려면 아래와 같이 작성하면 됩니다.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
If Not Intersect(Target, Range("b1")) Is Nothing Then
Call 연습매크로
End If
End If
End Sub
|
'b1'의 셀을 클릭하면 '연습매크로'가 자동 실행되는 것을 확인할 수 있습니다.
5. 만약 여러셀을 동시에 작업하고 싶을 때는 아래 문법을 참고하여 소스코드를 작성해 주시면 엑셀 문서 사용이 정말 편리해 집니다.^^
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
If Not Intersect(Target, Range("e1")) Is Nothing Then
Call 원화표시
End If
If Not Intersect(Target, Range("d2")) Is Nothing Then
Call 오름정렬
End If
If Not Intersect(Target, Range("d1")) Is Nothing Then
Call 내림정렬
End If
If Not Intersect(Target, Range("c1")) Is Nothing Then
Call 수입보기
End If
If Not Intersect(Target, Range("b1")) Is Nothing Then
Call 전체보기
End If
If Not Intersect(Target, Range("b4")) Is Nothing Then
Call 지출_저축_투자
End If
If Not Intersect(Target, Range("b5")) Is Nothing Then
Call 지출_주거
End If
If Not Intersect(Target, Range("b6")) Is Nothing Then
Call 지출_식비
End If
If Not Intersect(Target, Range("b7")) Is Nothing Then
Call 지출_생활용품
End If
If Not Intersect(Target, Range("b8")) Is Nothing Then
Call 지출_의복_미용
End If
If Not Intersect(Target, Range("b9")) Is Nothing Then
Call 지출_건강
End If
If Not Intersect(Target, Range("b10")) Is Nothing Then
Call 지출_자기계발
End If
If Not Intersect(Target, Range("b11")) Is Nothing Then
Call 지출_자동차
End If
If Not Intersect(Target, Range("b12")) Is Nothing Then
Call 지출_육아
End If
If Not Intersect(Target, Range("b13")) Is Nothing Then
Call 지출_보험
End If
If Not Intersect(Target, Range("b14")) Is Nothing Then
Call 지출_이벤트
End If
If Not Intersect(Target, Range("b15")) Is Nothing Then
Call 지출_섬김비
End If
If Not Intersect(Target, Range("b16")) Is Nothing Then
Call 지출_헌금
End If
If Not Intersect(Target, Range("b17")) Is Nothing Then
Call 지출_기부
End If
If Not Intersect(Target, Range("b18")) Is Nothing Then
Call 지출_통신비
End If
If Not Intersect(Target, Range("b19")) Is Nothing Then
Call 지출_기타
End If
End If
End Sub
|