共用方式為


了解具名引數和選擇性引數

當您呼叫 SubFunction 程式時,可以依自變數出現在程式定義中的順序, 以位置方式 提供自變數,或者您可以依名稱提供自變數,而不考慮位置。

例如,下列 Sub 程式會接受三個自變數。

Sub PassArgs(strName As String, intAge As Integer, dteBirth As Date) 
    Debug.Print strName, intAge, dteBirth 
End Sub

您可以藉由在正確的位置提供其自變數來呼叫此程式,每個自變數都是以逗號分隔,如下列範例所示。

PassArgs "Mary", 29, #2-21-69# 

您也可以藉由提供 具名自變數來呼叫此程式,並以逗號分隔每個自變數。

PassArgs intAge:=29, dteBirth:=#2/21/69#, strName:="Mary" 

具名自變數是由自變數名稱所組成,後面接著冒號和等號 (:=) ,後面接著自變數值。

當您呼叫具有選擇性自變數的程式時,具名自變數特別有用。 如果您使用具名自變數,則不需要包含逗號來表示遺漏的位置自變數。 使用具名自變數可讓您更輕鬆地追蹤您傳遞的自變數,以及您省略的自變數。

選擇性自變數前面會加上程序定義中的 Optional關鍵詞 。 您也可以在程式定義中指定選擇性自變數的預設值。 例如:

Sub OptionalArgs(strState As String, Optional strCountry As String = "USA") 
    ...
End Sub

當您使用選擇性自變數呼叫程式時,可以選擇是否要指定選擇性自變數。 如果您未指定選擇性自變數,則會使用預設值,如果有的話。 如果未指定預設值,則自變數會是指定類型的任何變數。

下列程式包含兩個選擇性自變數: varRegionvarCountry 變數。 IsMissing 函式會判斷是否已將選擇性的 Variant 自變數傳遞至程式。

Sub OptionalArgs(strState As String, Optional varRegion As Variant, Optional varCountry As Variant = "USA") 
    If IsMissing(varRegion) And IsMissing(varCountry) Then 
        Debug.Print strState 
    ElseIf IsMissing(varCountry) Then 
        Debug.Print strState, varRegion 
    ElseIf IsMissing(varRegion) Then 
        Debug.Print strState, varCountry 
    Else 
        Debug.Print strState, varRegion, varCountry 
    End If 
End Sub

您可以使用具名自變數來呼叫此程式,如下列範例所示。

OptionalArgs varCountry:="USA", strState:="MD" 
 
OptionalArgs strState:= "MD", varRegion:=5 

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應