Sub 程序 (Visual Basic)
Sub
程序是 Sub
和 End 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
可指定有關多載、覆寫、共用和遮蔽的存取層級和資訊。 如需詳細資訊,請參閱 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")