發新話題

Visual Basic 教學 - 《副程式與函數》Sub 陳述式

Visual Basic 教學 - 《副程式與函數》Sub 陳述式

宣告 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 關鍵字讓您可以使用多個引數,但不可以和 ByValByRef、或 Optional 共用。
varname必要的引數。引數之變數的名稱,遵循標準變數命名規格。
type選擇性引數。傳給程序的引數之訪客無法瀏覽此圖片或連結,請先 註冊登入會員 ,可以是 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (目前尚未支援)、訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (只限可變長度)、訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 。如果引數不是 Optional 的,則可指定訪客無法瀏覽此圖片或連結,請先 註冊登入會員 訪客無法瀏覽此圖片或連結,請先 註冊登入會員
defaultvalue選擇性引數。任何訪客無法瀏覽此圖片或連結,請先 註冊登入會員 或常數運算式,只能使用在 Optional 的引數上。如果型態是 Object,則預設值只能是 Nothing
請注意
如果沒有明確的使用 PublicPrivateSub 程序預設是公用的。如果沒有使用 Static,則區域變數的值在呼叫之間是不保留的。
注意 Sub 程序可以遞迴,也就是它們可以呼叫自己。然而,遞迴可能會造成堆疊溢位。Static 關鍵字通常不使用在遞迴的 Sub 程序上。
所有的可執行程式碼都必須在程序中。不可以在 FunctionSub Property 程序裏定義其它的 Sub 程序。
Exit Sub 陳述式會使 Sub 程序立即停止。程式會從呼叫該 Sub 程序的下一行陳述式繼續執行。Exit Sub 陳述式可以在 Sub 程序任何位置出現,且不限次數。
如同 Sub 程序一樣,Function 程序是獨立的程序,可以接受引數,執行一串陳述式,並且改變引數的值。然而,不像 Function 程序會傳回值,Sub 程序無法在運算式裏使用。
只要使用程序名稱後,接著以括號括起來的引數列,就可以呼叫 Sub 程序。請參考 Call 陳述式以得知關於如何呼叫 Sub 程序的特定資訊。
在 Sub 程序中使用的變數有兩類:一為程序中明確宣告的,以及不是此類的。在程序中明確宣告的變數 (使用 Dim 或同類字),必為區域性的。程序中使用到,但未明確在程序中宣告的變數也是區域的,除非此變數已經在程序外的更高層次中明確宣告過。
注意 程序可使用不是在該程序裏明確宣告的變數,但是若在訪客無法瀏覽此圖片或連結,請先 註冊登入會員 定義了相同的名稱,就會發生名稱上的衝突。如果程序裏引用了未宣告的變數,而此變數的名稱和其它程序、常數、或變數的名稱相同,那麼就會認定該程序引用模組層次的名稱。所以,請明確的宣告變數以避免此種衝突。可以使用 Option Explicit 陳述式來強迫明確的宣告變數。
附註 不可以使用 GoSubGoToReturn 來進入或離開 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

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。