Hemos visto el uso gen�rico de MSGBOX. En realidad esta es una funci�n del lenguaje aunque, por su particular relevancia le vamos a dedicar un cap�tulo aparte. Esta funci�n tiene muchas mas posibilidades de las que hemos visto hasta ahora. De hecho sirve para mostrar distintos tipos de cuadros de confirmaci�n, mensajes o preguntas al usuario. Algunos de esos cuadros tienen varias posibles actuaciones por parte del usuario y son capaces de identificar cual ha sido la respuesta elegida y actuar en consecuencia. Como particularidad debemos rese�ar que MSGBOX, en todos los usos que se le den, es una funci�n, ya que devuelve un resultado. Si nos acordamos, existe una modalidad, la mas simple, que se llamaba como una funci�n:
MSGBOX ("Esto es un resultado")
Esta instrucci�n no produce mas que un cuadro de mensaje en pantalla y queda esperando a que el usuario pulse el bot�n Aceptar. Como ves tiene algo de excepcional. Es una funci�n y no devuelve ning�n resultado. Ahora Veamos una l�nea un tanto especial:
CALL MSGBOX ("Mensaje", VBOKONLY, "T�tulo")
F�jate que se est� usando la funci�n llam�ndola como si fuera un procedimiento. Esta l�nea produce un resultado id�ntico a la anterior.

Ahora vamos a usar la funci�n en toda su plenitud. Supongamos la siguiente l�nea de c�digo:
confirmacion = MSGBOX ("Mensaje", VBOKCANCEL, "T�tulo")
Esto generar� el siguiente cuadro:

A continuaci�n esperar� a que el usuario pulse uno de los dos botones. Y �qu� se guardar� en la variable confirmacion? Pues un n�mero que ser� distinto seg�n el bot�n que haya pulsado el usuario. Si pulsa en Aceptar se guardar� un 1. Si pulsa en cancelar se guardar� un 2. De esta forma, podremos usar, por ejemplo, un condicional para que nuestro programa ejecute una operaci�n u otra, seg�n la decisi�n del usuario. Veamos mas posibilidades. Al final de este cap�tulo tienes una lista completa de los posibles botones que se muestran a continuaci�n y los valores num�ricos que generan para su posterior identificaci�n.
resultado = MSGBOX ("Mensaje", VBYESNOCANCEL, "Titulo")
Genera el siguiente cuadro:

resultado = MSGBOX ("Mensaje", VBABORTRETRYIGNORE, "T�tulo")
Genera el siguiente cuadro:

resultado = MSGBOX ("Mensaje", VBYESNO, "T�tulo")
Genera el siguiente cuadro:

resultado = MSGBOX ("Mensaje", VBRETRYCANCEL, "T�tulo")
Genera el siguiente cuadro:

resultado = MSGBOX ("Mensaje", VBCRITICAL, "T�tulo")
Genera el siguiente cuadro:

resultado = MSGBOX ("Mensaje", VBQUESTION, "T�tulo")
Genera el siguiente cuadro:

resultado = MSGBOX ("Mensaje", VBEXCLAMATION, "Titulo")
Genera el siguiente cuadro:

resultado = MSGBOX ("Mensaje", VBINFORMATION, "T�tulo")
Genera el siguiente cuadro:

Los diferentes valores que recibir�a la variable resultado, seg�n el bot�n que pulse en cada caso el usuario, son:
Bot�n | Valor |
Aceptar | 1 |
Cancelar | 2 |
Anular | 3 |
Reintentar | 4 |
Ignorar | 5 |
S� | 6 |
No | 7 |