Sub 프로시저(Visual Basic)

Sub 프로시저는 SubEnd Sub 문으로 묶인 일련의 Visual Basic 문입니다. Sub 프로시저는 작업을 수행한 다음 호출 코드에 컨트롤을 반환하지만 호출 코드에 값을 반환하지는 않습니다.

프로시저가 호출될 때마다 해당 문은 Sub 문 다음의 첫 번째 실행 가능 문부터 시작하여 처음 발견된 End Sub, Exit Sub 또는 Return 문으로 끝납니다.

모듈, 클래스, 구조체에서 Sub 프로시저를 정의할 수 있습니다. 기본적으로는 Public입니다. 이는 정의한 모듈, 클래스 또는 구조에 액세스할 수 있는 애플리케이션의 어느 곳에서나 이를 호출할 수 있음을 의미합니다. 메서드라는 용어는 정의 모듈, 클래스 또는 구조 외부에서 액세스되는 Function 또는 Sub 프로시저를 설명합니다. 자세한 내용은 프로시저를 참조하세요.

Sub 프로시저는 호출 코드에 의해 전달되는 상수, 변수 또는 식과 같은 인수를 사용할 수 있습니다.

선언 구문

Sub 프로시저를 선언하는 구문은 다음과 같습니다.

[modifiers] Sub SubName[(parameterList)]
    ' Statements of the Sub procedure.
End Sub

modifiers는 오버로드, 재정의, 공유, 섀도잉에 관한 액세스 수준과 정보를 지정할 수 있습니다. 자세한 내용은 Sub 문을 참조하세요.

매개 변수 선언

변수를 선언하는 방법과 유사하게 각 프로시저 매개 변수를 선언하여 매개 변수 이름과 데이터 형식을 지정합니다. 전달 메커니즘과 매개 변수가 선택 사항인지 또는 매개 변수 배열인지 여부도 지정할 수 있습니다.

매개 변수 목록의 각 매개 변수에 대한 구문은 다음과 같습니다.

[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType

매개 변수가 선택 사항인 경우 선언의 일부로 기본값도 제공해야 합니다. 기본값을 지정하는 구문은 다음과 같습니다.

Optional [ByVal | ByRef]  parameterName As DataType = defaultValue

지역 변수로서의 매개 변수

컨트롤이 프로시저에 전달되면 각 매개 변수는 지역 변수로 처리됩니다. 즉, 해당 수명은 프로시저의 수명과 동일하며 해당 범위는 전체 프로시저가 됩니다.

호출 구문

독립 실행형 호출 문을 사용하여 Sub 프로시저를 명시적으로 호출합니다. 식에서 해당 이름을 사용하여 호출할 수 없습니다. 선택 사항이 아닌 모든 인수에 대해 값을 제공해야 하며 인수 목록을 괄호로 묶어야 합니다. 인수가 제공되지 않으면 선택적으로 괄호를 생략할 수 있습니다. Call 키워드 사용은 선택 사항이지만 권장되지는 않습니다.

Sub 프로시저 호출 구문은 다음과 같습니다.

[Call] SubName[(argumentlist)]

이를 정의하는 클래스 외부에서 Sub 메서드를 호출할 수 있습니다. 먼저 New 키워드를 사용하여 클래스의 인스턴스를 만들거나 클래스의 인스턴스를 반환하는 메서드를 호출해야 합니다. 자세한 내용은 새 연산자를 참조하세요. 그런 다음, 다음 구문을 사용하여 인스턴스 개체에서 Sub 메서드를 호출할 수 있습니다.

object.MethodName[(argumentList)]

선언 및 호출의 그림

다음 Sub 프로시저는 애플리케이션이 수행하려는 작업을 컴퓨터 운영자에게 알리고 타임스탬프도 표시합니다. 애플리케이션은 모든 작업을 시작할 때 이 코드를 복제하는 대신 다양한 위치에서 tellOperator를 호출합니다. 각 호출은 시작되는 작업을 식별하는 task 인수의 문자열을 전달합니다.

Sub tellOperator(ByVal task As String)
    Dim stamp As Date
    stamp = TimeOfDay()
    MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub

다음 예에서는 tellOperator에 대한 일반적인 호출을 보여 줍니다.

tellOperator("file update")

참고 항목