Proporcionar valores predeterminados para parámetros opcionales
También puede especificar valores predeterminados para parámetros opcionales. En el siguiente ejemplo, si no se pasan parámetros opcionales al procedimiento de función, se devuelve un valor predeterminado.
SubListText(xAsString,OpcionalmenteAs_
Entero=12345)
Lista1.AddItemx
Lista1.AddItemy
FinSub
PRIvateSubCommand1_Click()
strName=sunombre 'No se proporcionó el segundo parámetro.
CallListText(strName) 'Agrega "tunombre" y "12345".
FinSub
Uso de un número indeterminado de parámetros En general, el número de parámetros en una llamada a procedimiento debe ser igual al número de parámetros en la descripción del procedimiento. Puede utilizar la palabra clave ParamArray para indicar que el procedimiento aceptará cualquier número de parámetros. Entonces puedes escribir la función Suma para calcular la suma de esta manera:
DimxAsInteger
DimyAsInteger
DimintSumaAsInteger
SubSuma(ParamArrayintNums())
ParaEachxInintNums
y=yx
Siguientex
sumaint=y
FinSub
PrivadoSubCommand1_Click()
Suma1,3,5,7,8
Lista1.AddItemintSum
FinSub
Cree declaraciones simples con parámetros con nombre
Para muchas funciones, instrucciones y métodos integrados, Visual Basic proporciona métodos de parámetros con nombre para pasar rápidamente valores de parámetros. Para los parámetros con nombre, se puede proporcionar cualquier número de parámetros en cualquier orden asignando valores a los parámetros con nombre. Para hacer esto, escriba el argumento nombrado, seguido de dos puntos, un signo igual y el valor (MyArgument:=SomeValue). Estas asignaciones se pueden organizar en cualquier orden, separadas por comas. Tenga en cuenta que el orden de los parámetros en el siguiente ejemplo es opuesto al orden de los parámetros requeridos:
FunctionListText(strNameAsString,OpcionalstrDirecciónAsString)
Lista1.AddItemstrName
Lista2.AddItemstrAddress
FinSub
PrivadoSubCommand1_Click()
ListTextstrAddress:=12345,strName:=Su nombre
FinSub
Lo anterior es más útil si el procedimiento tiene varios parámetros opcionales que no siempre es necesario especificar.
Confirmar la compatibilidad con parámetros con nombre
Para determinar qué funciones, declaraciones y métodos admiten parámetros con nombre, use la función AutoQuickInfo en la ventana Código, consulte el Explorador de objetos o consulte la referencia del idioma. Tenga en cuenta los siguientes puntos al utilizar parámetros con nombre:
Los métodos de objetos de la biblioteca de objetos de Visual Basic (VB) no admiten parámetros con nombre. Todas las palabras clave del lenguaje en la biblioteca de objetos de Visual Basic para Aplicaciones (VBA) admiten parámetros con nombre.
En la sintaxis, los parámetros nombrados se muestran en negrita y cursiva. Todos los demás parámetros están solo en cursiva.
Es importante tener en cuenta que cuando se utilizan parámetros con nombre, no se puede omitir la entrada de los parámetros requeridos. Sólo se pueden omitir parámetros opcionales. Para las bibliotecas de objetos de Visual Basic (VB) y Visual Basic para Aplicaciones (VBA), el cuadro de diálogo Explorador de objetos incluye parámetros opcionales entre corchetes [].
Consulte ByVal, ByRef, Opcional y ParamArray en la referencia del idioma para obtener más detalles .
Descripción general de la estructura de control
Con la estructura de control, se puede controlar el flujo de ejecución del programa. Si las declaraciones de flujo de control no están marcadas, el programa ejecuta estas declaraciones de izquierda a derecha y de arriba a abajo. Algunos programas simples se pueden escribir con un flujo unidireccional y parte del flujo se puede controlar mediante la precedencia de operadores, pero la efectividad y utilidad de cualquier lenguaje de programación proviene de su capacidad para cambiar el orden de las declaraciones a través de estructuras y bucles.
estructura de decisión
Los procedimientos de Visual Basic pueden probar expresiones condicionales y luego realizar diferentes acciones según los resultados de la prueba.
Las estructuras de decisión soportadas por Visual Basic son:
1.Si...entonces
2.Si...entonces...si no
3.Seleccione Caso
Si...entonces
Utilice la estructura If...Then para ejecutar condicionalmente una o más declaraciones. Se puede utilizar tanto la sintaxis de una sola línea como la de bloques de varias líneas:
Si condición entonces declaración
Si condición entonces
declaraciones
Fin si
La condición suele ser una comparación, pero puede ser cualquier expresión que calcule un valor numérico. Visual Basic interpreta este valor como Verdadero o Falso: un valor cero es Falso y cualquier valor distinto de cero se considera Verdadero. Si la condición es Verdadera, Visual Basic ejecuta todas las instrucciones que siguen a la palabra clave Then. Puede ejecutar condicionalmente una declaración usando sintaxis de una o varias líneas (los dos ejemplos siguientes son equivalentes):
IfanyDate<NowThenanyDate=Ahora
Si alguna fecha <ahora entonces
cualquier fecha = ahora
Fin si
Nota: El formato de una sola línea de If...Then no utiliza la instrucción EndIf. Si desea ejecutar varias líneas de código cuando la condición es Verdadera, debe utilizar la sintaxis del bloque de varias líneas If...Then...EndIf.
Si alguna fecha <ahora entonces
cualquier fecha = ahora
Timer1.Enabled=False 'El control del temporizador está deshabilitado.
Fin si
Si...entonces...si no
Defina varios bloques de instrucciones con bloques If...Then...Else y ejecute una de las instrucciones:
Si condición 1 entonces
[bloque de declaraciones-1]
[ElseIfcondition2Then
[bloque de declaraciones-2]]...
[Demás
[bloque de declaración-n]]
Fin si
Primeras pruebas de VisualBasic condición1. Si es Falso, Visual Basic prueba la condición2, y así sucesivamente, hasta que encuentra una condición que es Verdadera. Cuando encuentra una condición que es Verdadera, Visual Basic ejecuta el bloque de instrucción correspondiente y luego ejecuta el código que sigue a EndIf. Como opción, puede incluir un bloque de instrucciones Else que Visual Basic ejecuta si ninguna de las condiciones es Verdadera.
If...Then...ElseIf es solo un caso especial de If...Then...Else. Tenga en cuenta que puede utilizar cualquier cantidad de cláusulas ElseIf o ninguna. Puede haber una cláusula Else independientemente de si existe una cláusula ElseIf.
Por ejemplo, una aplicación puede realizar una acción según en qué control de una serie de controles de menú se haga clic:
PrivadoSubmnuCut_Click(IndexAsInteger)
IfIndex=0Entonces 'Comando "Cortar".
CopyActiveControl 'Llamar a un procedimiento común.
BorrarControlActivo
ElseIfIndex=1Entonces 'comando "Copiar".
CopiarControlActivo
ElseIfIndex=2Luego 'Borrar comando.
BorrarControlActivo
De lo contrario, 'Pegar comando.
PegarControlActivo
Fin si
FinSub
Tenga en cuenta que siempre puede agregar más bloques ElseIf a la estructura If...Then. Sin embargo, esta estructura es tediosa de escribir cuando cada ElseIf compara la misma expresión con un valor numérico diferente. En este caso puede utilizar la estructura de decisión SelectCase.
Para obtener información detallada, consulte la "Declaración If...Then...Else" en el "Manual de referencia del lenguaje VisualBasic6.0".
Seleccionar caso
VisualBasic proporciona la estructura SelectCase para reemplazar If...Then...Else, de modo que uno de los múltiples bloques de instrucciones pueda ejecutarse selectivamente. Las capacidades de la instrucción SelectCase son similares a las de la instrucción If...Then...Else, pero en el caso de selecciones múltiples, la instrucción SelectCase hace que el código sea más legible.
SelectCase maneja una expresión de prueba encima de la estructura y la evalúa solo una vez. Luego, Visual Basic compara el valor de la expresión con el valor de cada caso en la estructura. Si son iguales, se ejecuta el bloque de instrucciones asociado al Caso.
SeleccioneCasetestexpression
[Lista de expresiones de casos1
[bloque de declaraciones-1]]
[Lista de expresiones de casos2
[bloque de declaraciones-2]]
.
.
.
[CasoElse
[bloque de declaración-n]]
Selección final
Cada lista de expresiones es una lista de uno o varios valores. Si hay varios valores en una lista, sepárelos con comas. Cada bloque de declaraciones contiene cero o más declaraciones.
Si más de un Caso coincide con la expresión de prueba, solo se ejecuta el bloque de instrucciones asociado con el primer Caso coincidente. Si ningún valor en la lista de expresiones coincide con la expresión de prueba, Visual Basic ejecuta la instrucción en la cláusula CaseElse (esto es opcional).
Por ejemplo, supongamos que desea agregar un comando al menú Editar en el ejemplo Si...Entonces...Si no. Puede agregar una cláusula ElseIf para esto o usar SelectCase para escribir una función:
PrivadoSubmnuCut_Click(IndexAsInteger)
Seleccionar índice de casos
Comando Case0 'Cortar'.
CopyActiveControl 'Llamar a un procedimiento común.
BorrarControlActivo
Caso1 'Comando "Copiar".
CopiarControlActivo
Caso2 'Comando "Borrar".
BorrarControlActivo
Case3 'Comando Pegar.
PegarControlActivo
Caso más
frmFind.Show 'Mostrar el cuadro de diálogo encontrado.
Selección final
FinSub
Tenga en cuenta que la estructura SelectCase evalúa la expresión al principio cada vez. La estructura If...Then...Else evalúa una expresión diferente para cada declaración ElseIf. Puede reemplazar una estructura If...Then...Else con una estructura SelectCase solo si la instrucción If y cada instrucción ElseIf evalúan la misma expresión.
->