Sub 程序 (Visual Basic)

Sub 程序是 SubEnd Sub 陳述式所括住的一連串 Visual Basic 陳述式。 Sub 程序會執行工作,然後將控制傳回呼叫程式碼,但其不會傳回值給呼叫程式碼。

每次呼叫程序時,其陳述式都會執行,從 Sub 陳述式之後的第一個可執行陳述式開始,並以出現的第一個 End SubExit SubReturn 陳述式結尾。

您可以在模組、類別和結構中定義 Sub 程序。 預設為 Public,這表示您可以從應用程式中任何可存取您所定義模組、類別或結構的任何位置呼叫它。 「方法」一詞描述從自身定義模組、類別或結構外受到存取的 SubFunction 程序。 如需詳細資訊,請參閱程序

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 關鍵字建立類別的執行個體,或是呼叫會傳回類別之執行個體的方法。 如需詳細資訊,請參閱 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")

另請參閱