프로젝트 및 실습/VBA

[VBA] ParamArray

jooona 2022. 8. 5. 19:47
반응형

Function 또는 Sub를 구현하다 보면, Parameter를 여러 개 받아와야 하는 경우가 있습니다. 이 중, parameter의 개수가 계속 변할 수 있는 상황이 존재할 수도 있죠. 

 

가장 대표적인 예시가 정수의 덧셈을 구현하는 경우입니다. Sum(2,1)처럼 두 수를 받아와서 덧셈을 수행하는 경우도 있겠지만 Sum(1,2,3,4)처럼 여러 수의 덧셈 역시 가능하도록 구현을 하고 싶을 수 있겠죠.

 

이럴 때 사용할 수 있는 것이 ParamArray입니다.

 

ParamArray는 위의 예시와 같이 여러 parameter를 받아오고 싶지만, 그 개수를 특정하고 싶지는 않을 때 사용할 수 있습니다.

 

사용법은 Parameter를 정의할 때 앞에 ParamArray를 붙여주면 되고, 항상 배열의 형태를 가진 Variant 자료형으로 받아와야 합니다.  

 

예시를 살펴보겠습니다.

Sub ParamArray_Example()
    
    Debug.Print "With 1 Argument: " & Sum_Using_ParamArray(1, 2)
    Debug.Print "With 2 Arguments: " & Sum_Using_ParamArray(1, 2, 3)
    Debug.Print "With 3 Arguments: " & Sum_Using_ParamArray(1, 2, 3, 4)
    
End Sub

Function Sum_Using_ParamArray(ParamArray intList() As Variant)

    For Each arg In intList
        Sum_Using_ParamArray = Sum_Using_ParamArray + arg
    Next arg
    
End Function

Sum_Using_Parameter라는 Function은 ParamArray를 이용해 Parameter를 선언했기 때문에 몇 개의 수를 받아오든 상관없이 기능을 수행할 수 있습니다. 

 

아래는 출력 결과입니다.

 

 

 

반응형

'프로젝트 및 실습 > VBA' 카테고리의 다른 글

[VBA] 행, 열 숨기기  (0) 2022.08.08
[VBA] Join Function  (0) 2022.08.08
[VBA] IIf Function  (0) 2022.08.04
[VBA] Error Handling  (0) 2022.08.03
[VBA] MsgBox 사용법  (0) 2022.08.03