반응형
간단히 요약하면
Byval - 값에 의한 전달
ByRef - 참조에 의한 전달
이다.
간단한 예시와 함께 알아보도록 하자.
'메인처리
'
Sub Main()
Dim strMessage_ByRef As String
Dim strMessage_ByVal As String
strMessage_ByRef = "변경전메세지"
strMessage_ByVal = "변경전메세지"
'참조에 의한 전달 후 메세지 확인
Call Test_ByRef(strMessage_ByRef)
Debug.Print "ByRef실행후:" & strMessage_ByRef
'값에 의한 전달 후 메세지 확인
Call Test_ByVal(strMessage_ByVal)
Debug.Print "ByVal실행후:" & strMessage_ByRef" & strMessage_ByVal
End Sub
'ByRef을 사용한 함수
'
Function Test_ByRef(ByRef strMessage As String)
'파라미터 변경
strMessage = "ByRef으로 변경"
End Function
'ByVal을 사용한 경우
'
Function Test_ByVal(ByVal strMessage As String)
'파라미터 변경
strMessage = "ByVal으로 변경"
End Function
위의 예시에서 메인을 실행시키면 아래와 같은 결과를 얻을 수 있다.
ByRef실행후 : ByRef으로 변경 ByVal실행후 : 변경전메세지 |
즉 값에 의한 전달은 파라미터로 받은 변수의 값만 복사해서 가져다 쓰기 때문에
넘겨받은 값이 들어있는 변수에 영향을 주지 못한다.
하지만 참조에 의한 전달은 넘겨받은 변수 그 자체를 가져다 쓰기 때문에 변수에 영향을 준다.
Byval - 값에 의한 전달
ByRef - 참조에 의한 전달
반응형
'IT 이모저모 > VBA' 카테고리의 다른 글
VBA(엑셀 매크로) for, foreach(반복문) 활용법과 Continue와 break방법 (0) | 2020.06.13 |
---|---|
VBA(엑셀 매크로) if(조건)문 과 비교연산자 설명, 예시 (0) | 2020.06.10 |
VBA sub프로시저 Function프로시저 (함수) 차이점 및 생성, 불러오는법 (0) | 2020.06.07 |
VBA 자료형 - 자료형 종류 (1) | 2020.05.23 |
VBA 변수 선언, 사용법 (0) | 2020.05.23 |