Noções básicas sobre argumentos nomeados e argumentos opcionais
Ao chamar um procedimento Sub ou Function , você pode fornecer argumentos posicionalmente, na ordem em que eles aparecem na definição do procedimento ou você pode fornecer os argumentos pelo nome sem considerar a posição.
Por exemplo, o procedimento Sub a seguir usa três argumentos.
Sub PassArgs(strName As String, intAge As Integer, dteBirth As Date)
Debug.Print strName, intAge, dteBirth
End Sub
Você pode chamar esse procedimento fornecendo seus argumentos na posição correta, cada delimitado por uma vírgula, conforme mostrado no exemplo a seguir.
PassArgs "Mary", 29, #2-21-69#
Você também pode chamar esse procedimento fornecendo argumentos nomeados, delimitando cada um com uma vírgula.
PassArgs intAge:=29, dteBirth:=#2/21/69#, strName:="Mary"
Um argumento nomeado consiste em um nome de argumento seguido por um ponto e um sinal igual (:=), seguido pelo valor do argumento.
Argumentos nomeados são especialmente úteis quando você está chamando um procedimento que tem argumentos opcionais. Se você usar argumentos nomeados, não precisará incluir vírgulas para denotar argumentos posicionais ausentes. O uso de argumentos nomeados facilita o controle de quais argumentos você passou e quais você omitiu.
Os argumentos opcionais são precedidos pela palavra-chaveOpcional na definição do procedimento. Você também pode especificar um valor padrão para o argumento opcional na definição do procedimento. Por exemplo:
Sub OptionalArgs(strState As String, Optional strCountry As String = "USA")
. . .
End Sub
Ao chamar um procedimento com um argumento opcional, você pode escolher se deseja ou não especificar o argumento opcional. Se você não especificar o argumento opcional, o valor padrão, se houver, será usado. Se nenhum valor padrão for especificado, o argumento será para qualquer variável do tipo especificado.
O procedimento a seguir inclui dois argumentos opcionais, as varRegion
variáveis e varCountry
. A função IsMissing determina se um argumento variant opcional foi passado para o procedimento.
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
Você pode chamar esse procedimento usando argumentos nomeados, conforme mostrado no exemplo a seguir.
OptionalArgs varCountry:="USA", strState:="MD"
OptionalArgs strState:= "MD", varRegion:=5
Confira também
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de