[VB] Sub 과 Function 프로시저의 차이를 알아보자

보통 VB 에서 작성한 코드를 프로시저라고 부릅니다. 각 프로시져는 특정 업무를 수행 하도록 하는데 보통의 경우 Sub 프로시저나 Function 프로시저를 사용하는데 두 개의 차이점과 기본적인 사용법을 정리 해봅니다.

Sub

Sub 프로시저는 특정한 업무를 수행하는 것으로 그 역할을 다합니다. 계산을 하라면 계산을 하고 메시지 박스를 출력하라면 출력을 하고 그 임무입니다.

기본 사용 방법은 아래와 같습니다.

Private Sub ShowAdd(Num1 As Double, Num2 As Double)
    Dim Result As Double
    Result = Num1 + Num2
    Sheet1.Cells(1, 1) = Result
End Sub

두 개의 숫자를 인수로 받아 더한 다음 Sheet1 의 첫번째 셀에 그 결과를 내보내는 작업을 수행하는 Sub 프로시저입니다.

Function

Function 프로시저는 특정한 업무를 수행한다는 것은 같지만, 업무 수행에서 끝나는 것이 아니라 그 결과를 사용자에게 반환하는 것이 그 업무의 마지막입니다.

Function 프로시저의 기본 사용 방법은 아래와 같습니다.

Private Function Add(Num1 As Double, Num2 As Double)
    Dim Result As Double
    Result = Num1 + Num2
    Add = Result
End Function

위 Sub 프로시저와 같이 인수를 받아 더하는 작업을 수행하지만 그 결과를 사용자에게 반환하는 것으로 그 임무를 다합니다.

Sub 과 Function 의 혼용

위 두가지 예제를 함께 사용 해봅시다. Add Function 을 이용해 값을 더하고 ShowAdd Sub 을 조금 변형해 원래의 작업을 수행 하도록 해봅시다.

Private Function Add(Num1 As Double, Num2 As Double)
    Dim Result As Double
    Result = Num1 + Num2
    Add = Result
End Function

Private Sub ShowAdd(Num1 As Double, Num2 As Double)
    Sheet1.Cells(1, 1) = Add(Num1, Num2)
End Sub

ShowAdd Sub 이 훨씬 간단해졌죠? ShowAdd Sub 은 인수 Num1 과 Num2를 받아 스스로가 계산하지 않고, 그대로 Add Function 에 넘겨서 결과 값만 받아와 Sheet1 의 셀에 표시 하는 것입니다.


Function 을 잘 만들어 놓고 많은 Sub 들이 이 Function 을 잘 가져다 쓰도록 하면 조금 더 효율적으로 작업을 할 수 있지 않을까 싶습니다.