728x90
반응형

Call 함수를 이용한 매크로 호출
VBA에서는 Call 키워드를 사용하여 한 매크로에서 다른 매크로를 호출할 수 있습니다.
이를 활용하면 코드의 재사용성을 높이고, 복잡한 작업을 더 체계적으로 관리할 수 있습니다.
연속으로 여러 매크로를 이어서 작성, 다시 말해 한 매크로 안에 여러 메서드를 정의할 수도 있지만 관리가 어렵습니다.
아래와 같이 매크로 내에서 매크로를 호출하여, 각 매크로의 관리 용이성도 확보하고 귀찮음도 타파해봅시다.
Call 함수 기본 문법
Call 매크로이름
혹은 Call 없이도 호출할 수 있습니다.
매크로이름
Call을 활용한 예제
Sub 첫번째매크로()
MsgBox "첫 번째 매크로 실행됨"
Call 두번째매크로 ' 두 번째 매크로 호출
End Sub
Sub 두번째매크로()
MsgBox "두 번째 매크로 실행됨"
End Sub
✅ 실행 방식:
- 첫번째매크로를 실행하면 메시지 박스에 "첫 번째 매크로 실행됨"이 표시됩니다.
- 이후 Call 두번째매크로가 실행되면서 "두 번째 매크로 실행됨" 메시지가 표시됩니다.
Call을 활용한 매개변수 전달
Sub 첫번째매크로()
Dim 숫자 As Integer
숫자 = 10
Call 두번째매크로(숫자) ' 숫자 값을 전달
End Sub
Sub 두번째매크로(값 As Integer)
MsgBox "전달받은 값: " & 값
End Sub
✅ 실행 방식:
- 첫번째매크로 실행 → 숫자 = 10 설정
- Call 두번째매크로(숫자) 실행 → 두번째매크로로 값 10 전달
- 메시지 박스에 "전달받은 값: 10" 출력
Private Sub의 기능
그런데, 어차피 첫번째 매크로만 실행할텐데 매크로 대화상자에서 호출되는 매크로들은 안 보이게 할 수 없을까요?
이 때는 호출되는 매크로들 앞에 "Private"을 붙여주면 됩니다.
VBA에서 Private Sub는 특정 범위 내에서만 실행될 수 있는 서브루틴을 정의할 때 사용됩니다.
Private 키워드는 해당 서브루틴이 현재 모듈 내에서만 호출될 수 있도록 제한하는 역할을 합니다.
Private Sub 기본 문법
Private Sub 서브루틴이름()
' 실행할 코드 입력
End Sub
Private Sub의 주요 특징
- 모듈 내에서만 실행 가능
- Private Sub로 정의된 서브루틴은 다른 모듈에서는 호출할 수 없음.
- 같은 모듈 내에서만 호출 가능.
- 매크로 대화상자에 표시되지 않음.
- 워크시트 이벤트와 함께 사용 가능
- Private Sub는 워크시트 이벤트(예: 셀 변경, 클릭 등)와 자주 사용됨.
Private Sub 예제 1: 일반적인 사용
Private Sub 숨겨진매크로()
MsgBox "이 매크로는 현재 모듈 내에서만 실행됩니다."
End Sub
Sub 실행매크로()
Call 숨겨진매크로 ' 같은 모듈 내에서 호출 가능
End Sub
✅ 실행매크로를 실행하면 숨겨진매크로가 실행되지만, 다른 모듈에서는 호출할 수 없습니다.
Private Sub 예제 2: 워크시트 이벤트 활용
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "셀 값이 변경되었습니다: " & Target.Address
End Sub
✅ 이 코드는 워크시트의 셀 값이 변경될 때 자동으로 실행됩니다.
아래 화면에서 다시 한번 Private Sub의 효과를 확인합시다.


728x90
반응형
'PROGRAMMING > EXCEL&ACCESS' 카테고리의 다른 글
[엑셀 VBA] VBA의 구성 요소 자세히 알아보기 (개체, 속성, 메서드, 인수) (0) | 2025.02.20 |
---|---|
[엑셀] 수식 표시하기 : 시트 전체, 선택한 셀, 특정 셀 (0) | 2025.02.19 |
[엑셀 VBA] 엑셀 VBA 조건문과 반복문 (0) | 2025.02.17 |
[엑셀 VBA] 매크로 연습하기 (매크로 기록/상대참조로 기록) (0) | 2025.02.16 |
[엑셀 VBA] Dim 키워드 사용하기 (0) | 2025.02.16 |
댓글