Las Cajas de Mensajes y las Cajas de Entrada son muy usuales en el sistema operativo Windows y en las aplicaciones.
Las primeras son ventanas que aparecen en el centro de la pantalla y piden al usuario una decisión, la que podrá tomar presionando algún botón. Un ejemplo de estas son las cajas de confirmación de guardar cambios en los archivos al cerrar un programa.
Las segundas son ventanas donde se pide ingresar un un dato que el usuario digita en una caja de texto y envía este resultado a una variable.
Cajas de mensajes (MsgBox).
Las cajas de mensajes devuelven un valor, el cual dependerá del botón pulsado en el cuadro de mensaje. Este valor es numérico y se almacena en una variable para luego tomar decisiones.
La sintaxis de la caja de mensajes es la siguiente:
MsgBox(texto, botones+focobotón+icono, título)
Donde texto será el texto descriptivo que aparecerá en la caja, botones son los botones que aparecerán en la caja y se definen por una constante de Visual Basic, focobotón es una constante de Visual Basic que especifica qué botón será el predeterminado (el que tendrá el foco), icono será otra constante que definirá el icono que aparecerá en la caja, título es el texto que aparecerá en la barra de título de la caja de mensaje.
A continuación las constantes de los argumentos botones, focobotón e icono.
Tabla 7 - Constantes del argumento botones |
Botones |
Constante |
Valor |
Aceptar |
vbOkOnly |
0 |
Aceptar, Cancelar |
vbOkCancel |
1 |
Anular, Reintentar, Ignorar |
vbAbortRetryIgnore |
2 |
Si, No, Cancelar |
vbYesNoCancel |
3 |
Si, No |
vbYesNo |
4 |
Reintentar, Cancelar |
vbRetryCancel |
5 |
Tabla 8 - Constantes del argumento focobotones |
Foco |
Constante |
Valor |
Primer botón |
vbDefaultButton1 |
0 |
Segundo botón |
vbDefaultButton2 |
256 |
Tercer botón |
vbDefaultButton |
512 |
Tabla 9 - Constantes del argumento icono |
Icono |
Constante |
Valor |
|
vbCritical |
16 |
|
vbQuestion |
32 |
|
vbExclamation |
48 |
|
vbInformation |
64 |
Las cajas de mensaje devuelven un valor el que se podrá almacenar en una variable. El valor devuelto por esta función dependerá del botón que se halla pulsado y en la tabla 10 se muestra el valor que devolverá pulsar un botón:
Tabla 10 - Valores de retorno de MsgBox |
Botón pulsado |
Valor de retorno |
Aceptar |
1 |
Cancelar |
2 |
Anular |
3 |
Reintentar |
4 |
Ignorar |
5 |
Si |
6 |
No |
7 |
De esta forma se podrá utilizar una sentencia If, por ejemplo, para determinar diferentes acciones según el valor devuelto por MsgBox.
Cajas de Entrada (InputBox).
Las cajas de entrada permiten el ingreso de un valor o de un texto y devuelven una cadena con el texto ingresado.
La sintaxis de esta función es:
InputBox(texto, predeterminado, título)
Donde texto es el texto descriptivo que aparecerá en la caja de entrada, predeterminado es el valor predeterminado que aparecerá en la caja de texto de la caja de entrada, título es el texto que aparecerá en la barra de título de la caja de entrada.
Ejemplo
Crea un nuevo proyecto estándar y coloca en el formulario los siguientes controles:
Control |
Propiedad |
Valor |
Form |
Name |
frmCajas |
" " |
Caption |
Caja de mensajes y de entrada |
Label |
Name |
lblTexto |
" " |
Caption |
|
Label |
Name |
lblProd |
" " |
Caption |
0 |
CommandButton |
Name |
cmdTexto |
" " |
Caption |
&Escribir |
CommandButton |
Name |
cmdProd |
" " |
Caption |
&Multiplicar |
Escribe el siguiente código en el formulario:
Private Sub Form_Load()
MsgBox "Prueba de Caja de Mensajes"& vbCrLf &"y Caja de Entrada"
End Sub
Private Sub cmdTexto_Click()
lblTexto.Caption=InputBox("Introduzca un texto","introducir","Cuadro de entrada")
End Sub
Private Sub cmdProd_Click()
Dim numer as String
numer=InputBox("Introduzca un número",0,"Multiplicar por 2")
lblProd.Caption=2*Cint(numer)
End Sub
Pulse F5 para probar el programa.