다음을 통해 공유


하위 프로시저(Visual Basic)

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

프로시저가 호출될 때마다 문은 Sub 문 이후의 첫 번째 실행 가능한 문에서 시작하여 처음으로 만나는 End Sub, Exit Sub, 또는 Return 문에서 끝납니다.

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

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

선언 구문

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

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

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

매개 변수 선언

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

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

[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")

참고하십시오