宣告 Sub 訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。的名稱、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。和其中的程式碼。
語法
[Private | Public] [Static] Sub name [(arglist)] [statements]
[Exit Sub]
[statements]
End Sub
|
語法
Sub 陳述式的語法具有下列幾個單元:
單元 | 描述 |
Public | 選擇性引數。表示任何訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。裏的所有其它程序都可呼叫 Sub 程序。如果模組裏有 Option Private,那麼此程序就不能在訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。之外使用。 |
Private | 選擇性引數。表示 Sub 程序只在宣告它之模組裏的程序所使用。 |
Static | 選擇性引數。表示 Sub 程序的區域訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。在呼叫之間會將值保留下來。Static 不會影響在 Sub 之外所宣告的變數, 就算它們在程序中有被使用到。 |
name | 必要的引數。Sub 的名稱,遵循標準變數命名規格。 |
arglist | 選擇性引數。表示呼叫 Sub 程序時所傳送引數的變數清單。變數以逗號隔開。 |
statements | 選擇性引數。任何 Sub 程序要執行的訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。群組。 |
arglist 引數有下列語法和單元:
[
Optional] [
ByVal |
ByRef] [
ParamArray]
varname[
( )] [
As type] [=
defaultvalue]
單元 | 描述 |
Optional | 選擇性引數。表示引數不是必要的訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。。如果使用了,在 arglist 裏所有後來的引數也都必須是選擇性的,而且也必須用 Optional 關鍵字來宣告。如果已經使用了 ParamArray ,就不可以在引數上再使用 Optional。 |
ByVal | 選擇性引數。表示以訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。的方式來傳遞引數。 |
ByRef | 選擇性引數。表示以訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。的方式來傳遞引數。Visual Basic 預設為 ByRef。 |
ParamArray | 選擇性引數。使用在 arglist 的最後一個引數上,表示此引數是 Variant 元素的 Optional 訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。。ParamArray 關鍵字讓您可以使用多個引數,但不可以和 ByVal、ByRef、或 Optional 共用。 |
varname | 必要的引數。引數之變數的名稱,遵循標準變數命名規格。 |
type | 選擇性引數。傳給程序的引數之訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。,可以是 訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。 (目前尚未支援)、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。 (只限可變長度)、訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。或 訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。。如果引數不是 Optional 的,則可指定訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。或訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。。 |
defaultvalue | 選擇性引數。任何訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。或常數運算式,只能使用在 Optional 的引數上。如果型態是 Object,則預設值只能是 Nothing。 |
請注意
如果沒有明確的使用 Public、Private或 Sub 程序預設是公用的。如果沒有使用 Static,則區域變數的值在呼叫之間是不保留的。
注意 Sub 程序可以遞迴,也就是它們可以呼叫自己。然而,遞迴可能會造成堆疊溢位。Static 關鍵字通常不使用在遞迴的 Sub 程序上。
所有的可執行程式碼都必須在程序中。不可以在 Function、Sub 或 Property 程序裏定義其它的 Sub 程序。
Exit Sub 陳述式會使 Sub 程序立即停止。程式會從呼叫該 Sub 程序的下一行陳述式繼續執行。Exit Sub 陳述式可以在 Sub 程序任何位置出現,且不限次數。
如同 Sub 程序一樣,Function 程序是獨立的程序,可以接受引數,執行一串陳述式,並且改變引數的值。然而,不像 Function 程序會傳回值,Sub 程序無法在運算式裏使用。
只要使用程序名稱後,接著以括號括起來的引數列,就可以呼叫 Sub 程序。請參考 Call 陳述式以得知關於如何呼叫 Sub 程序的特定資訊。
在 Sub 程序中使用的變數有兩類:一為程序中明確宣告的,以及不是此類的。在程序中明確宣告的變數 (使用 Dim 或同類字),必為區域性的。程序中使用到,但未明確在程序中宣告的變數也是區域的,除非此變數已經在程序外的更高層次中明確宣告過。
注意 程序可使用不是在該程序裏明確宣告的變數,但是若在訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。定義了相同的名稱,就會發生名稱上的衝突。如果程序裏引用了未宣告的變數,而此變數的名稱和其它程序、常數、或變數的名稱相同,那麼就會認定該程序引用模組層次的名稱。所以,請明確的宣告變數以避免此種衝突。可以使用 Option Explicit 陳述式來強迫明確的宣告變數。
附註 不可以使用 GoSub、GoTo 或 Return 來進入或離開 Sub 程序。
Sub 陳述式範例
本範例使用 Sub 陳述式來定義一個 Sub 程序的名稱、引數及程式碼。
' Sub 程序定義。' 有兩個引數的 Sub 程序。Sub SubComputeArea(Length, TheWidth) Dim Area As Double ' 宣告區域變數。 If Length = 0 Or TheWidth = 0 Then ' 如果其中一個引數值為 0。 Exit Sub ' 立刻結束程序。 End If Area = Length * TheWidth ' 計算矩形的面積。 Debug.Print Area ' 將結果在 [偵錯] 視窗中顯示。End Sub