funciónes propias de visual basic

9
FUNCIÓN MSGBOX La función MsgBox en VBA nos permite mostrar un mensaje dentro de un cuadro de diálogo en espera de que el usuario haga clic sobre alguno de los botones provistos. Si lo deseamos podemos tomar alguna acción específica después de conocer el botón pulsado por el usuario. Argumentos de la función MsgBox La función MsgBox en VBA tiene 5 argumentos, los cuales explicaré a continuación: Prompt (obligatorio): Es la cadena de texto que se mostrará como el mensaje dentro del cuadro de diálogo. La longitud máxima es de 1024 caracteres, pero depende del tipo de fuente utilizada. Buttons (opcional): Expresión numérica que proviene de la suma de ciertas constantes que representan el tipo de botón e iconos a desplegar. Title (opcional): Cadena de texto que se mostrará como el título del cuadro de diálogo. Si se omite, el título será el nombre de la aplicación. HelpFile (opcional): Cadena de texto con la ubicación del archivo de ayuda asociado al cuadro de diálogo. Si se especifica este argumento, debe indicarse también Context. Para dejar en claro el uso de cada uno de los argumentos de la función haremos varios ejemplos y para cada uno de ellos crearé un botón de comando ActiveX e insertaré el código correspondiente en su evento Click. Al final del artículo encontrarás el vínculo para descargar el libro de trabajo. Ejemplo 1: La función MsgBox en VBA Ya que solamente el primer argumento de la función MsgBox es obligatorio, podemos crear un mensaje informativo para el usuario con la siguiente línea de código: 1 2 3 Private Sub CommandButton1_Click() MsgBox "Hola Mundo" End Sub Al ejecutar este código se mostrará un cuadro de diálogo como el siguiente:

Upload: ingidvm

Post on 17-Dec-2015

29 views

Category:

Documents


4 download

DESCRIPTION

MSGBOX E INPUTBOX

TRANSCRIPT

  • FUNCIN MSGBOX

    La funcin MsgBox en VBA nos permite mostrar un mensaje dentro de un cuadro de dilogo en espera de que el usuario haga clic sobre alguno de los botones provistos. Si lo deseamos podemos tomar alguna accin especfica despus de conocer el botn pulsado por el usuario.

    Argumentos de la funcin MsgBox

    La funcin MsgBox en VBA tiene 5 argumentos, los cuales explicar a continuacin:

    Prompt (obligatorio): Es la cadena de texto que se mostrar como el mensaje dentro del cuadro de dilogo. La longitud mxima es de 1024 caracteres, pero depende del tipo de fuente utilizada.

    Buttons (opcional): Expresin numrica que proviene de la suma de ciertas constantes que representan el tipo de botn e iconos a desplegar.

    Title (opcional): Cadena de texto que se mostrar como el ttulo del cuadro de dilogo. Si se omite, el ttulo ser el nombre de la aplicacin.

    HelpFile (opcional): Cadena de texto con la ubicacin del archivo de ayuda asociado al cuadro de dilogo. Si se especifica este argumento, debe indicarse tambin Context.

    Para dejar en claro el uso de cada uno de los argumentos de la funcin haremos varios ejemplos y para cada uno de ellos crear un botn de comando ActiveX e insertar el cdigo correspondiente en su evento Click. Al final del artculo encontrars el vnculo para descargar el libro de trabajo.

    Ejemplo 1: La funcin MsgBox en VBA

    Ya que solamente el primer argumento de la funcin MsgBox es obligatorio, podemos crear un mensaje informativo para el usuario con la siguiente lnea de cdigo:

    1 2 3

    Private Sub CommandButton1_Click() MsgBox "Hola Mundo" End Sub

    Al ejecutar este cdigo se mostrar un cuadro de dilogo como el siguiente:

  • Al no haber especificado ningn valor para el segundo argumento, se muestra solamente el botn Aceptar. Y ya que tampoco hay un tercer argumento, el cuadro de dilogo tendr el ttulo Microsoft Excel que es el nombre de la aplicacin.

    Ejemplo 2: El argumento Title

    Antes de revisar el segundo argumento de la funcin MsgBox, hablaremos sobre su tercer argumento que es el ttulo del cuadro de dilogo. Para poner un ttulo personalizado ser suficiente indicarlo de la siguiente manera:

    1 2 3

    Private Sub CommandButton2_Click() MsgBox "Hola Mundo", , "Mensaje especial" End Sub

    Esta instruccin mostrar el ttulo del cuadro de dilogo como Mensaje especial y ya no se mostrar el nombre de la aplicacin. Observa el resultado:

    Ejemplo 3: El argumento Buttons

    Hasta ahora solo has visto el botn Aceptar en el cuadro de dilogo, pero el segundo argumento de la funcin MsgBox nos permitir indicar los botones que deseamos mostrar y tambin podremos elegir el icono desplegado y el comportamiento del cuadro de dilogo. La siguiente tabla indica los valores que podemos utilizar para este argumento:

  • Todos estos valores los podemos dividir en cinco grupos. El primer grupo (0, 1, 2, 3, 4, 5) nos permite indicar los botones que se mostrarn en el cuadro de dilogo, el segundo grupo (16, 32, 48, 64) determinar el tipo de cono mostrado, el tercer grupo (0, 256, 512, 768) es til para indicar el botn predeterminado. El cuarto grupo (0, 4096) es la modalidad del cuadro de dilogo y el ltimo grupo, que son los valores restantes, nos permiten indicar la alineacin del texto y si deseamos mostrar un botn de Ayuda.

    Ya que los valores de cada grupo son excluyentes, solo hace sentido elegir un valor de cada uno de ellos. De esta manera, si deseo mostrar los botones Si y No, y adems mostrar un icono de mensaje de advertencia, entonces debo utilizar la siguiente instruccin:

    1 2 3

    Private Sub CommandButton3_Click() MsgBox "Hola Mundo", vbYesNo + vbExclamation, "Mensaje especial" End Sub

  • Para el segundo argumento puedes utilizar las constantes definidas para cada opcin o utilizar directamente el valor numrico correspondiente de acuerdo a la tabla. El resultado de esta instruccin ser el siguiente:

    Para cada opcin adicional que desees indicar debers agregarla utilizando el smbolo de suma (+). Recuerda que este argumento este argumento de la funcin MsgBox es de valor numrico, as que Excel obtendr la suma total para conocer las opciones indicadas.

    Ejemplo 4: Conocer el botn pulsado

    Para conocer el botn que ha sido pulsado por el usuario, es necesario guardar el valor devuelto por la funcin MsgBox en una variable:

    resultado = MsgBox("Hola Mundo", vbAbortRetryIgnore + vbQuestion, "Mensaje

    especial")

    Antes de continuar debo mencionar algo importante sobre esta instruccin ya que, a diferencia de las anteriores, en esta ocasin los argumentos de la funcin MsgBox estn encerrados en parntesis. Esto se debe a una regla de programacin en VBA la cual indica que cuando se llama a una funcin que devolver un valor el cual ser asignado a una variable, su lista de argumentos deber estar rodeada por parntesis. As que no podemos olvidar colocar los parntesis si queremos conocer el botn pulsado por el usuario.

    Ahora bien, la variable resultado guardar el valor devuelto por la funcin MsgBox el cual puede ser cualquiera de las siguientes opciones dependiendo los botones que hayamos decidido mostrar:

  • Una vez que el usuario hace clic sobre un botn, la funcin MsgBox nos devuelve el valor correspondiente y podremos comparar dicho valor con las contantes mencionadas en la tabla anterior. Para nuestro ejemplo, utilizar una sentencia Select Case para comparar la variable resultado con todas las opciones posibles:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    Private Sub CommandButton4_Click() resultado = MsgBox("Hola Mundo", vbAbortRetryIgnore + vbQuestion, "Mensaje especial") Select Case resultado Case vbOK: MsgBox "Se puls el botn Aceptar" Case vbCancel: MsgBox "Se puls el botn Cancelar" Case vbAbort: MsgBox "Se puls el botn Anular" Case vbRetry: MsgBox "Se puls el botn Reintentar" Case vbIgnore: MsgBox "Se puls el botn Omitir" Case vbYes: MsgBox "Se puls el botn Si" Case vbNo: MsgBox "Se puls el botn No" End Select End Sub

    Una vez identificado el botn sobre el cual el usuario ha hecho clic, mostraremos otro mensaje con el nombre de dicho botn. En un caso real, esa lnea de cdigo sera reemplazada por las instrucciones que se deseas ejecutar de acuerdo a la respuesta del usuario.

    En nuestro ejemplo mostramos un cuadro de dilogo con los botones Anular, Reintentar y Omitir, as que si el usuario hace clic sobre el botn Reintentar se mostrar el mensaje que nos confirmar dicha accin:

  • Con los ejemplos realizados hasta el momento hemos cubierto la gran mayora de opciones de uso de lafuncin MsgBox en VBA. La verdad es que los ltimos dos argumentos de la funcin son muy poco utilizados pero haremos un ltimo ejemplo para mostrar su uso.

    Otros Ejercicios Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn y devuelve un entero que indica el botn utilizado. Ejercicio 1 1.- Crear un formulario con un botn de comando como se muestra en la figura

    2.- Incluir el el command1 el siguiente codigo en el evento click msgbox "Actualizacin terminada", vbokonly, "Informacin" 3.- Ejecutar la aplicacin Ejercicio 2 Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el

  • siguiente cdigo msgbox "Quieres seguir?", vbYesNo, "Informacin importante" Ejercicio 3 Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente cdigo Dim intRespuesta As Integer intRespuesta = MsgBox("Quieres seguir?", vbQuestion + vbYesNo, Informacin importante") If intRespuesta = 6 Then MsgBox"Seguimos" Else MsgBox"Terminamos" End If Ejercicio 4 Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente cdigo msgbox "Actualizacin terminada:" & vbCrLf & vbCrLf & _ "- Importacin de datos de venta." & vbCrLf & "- Clculos de impuestos." & _ vbCrLf & "- Venta por proveedor." & vbCrLf , vbOKOnly, "Actualizacin terminada." Ejercicio 5 Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente cdigo msgbox "Actualizacin terminada:" & vbCrLf & vbCrLf & _ "- Importacin de datos de venta." & vbCrLf & _ "- Clculos de impuestos." & vbCrLf & _ "- Venta por proveedor." & vbCrLf _ , vbExclamation + vbOKOnly, _ "Actualizacin terminada." INPUTBOX Esta funcin muestra un cuadro de dilogo modal (ste es un trmino tcnico para definir un formulario que ha de cerrarse antes de poder continuar con el desarrollo

  • normal del programa), que contiene un Ttulo y un Mensaje (definibles), un cuadro de texto y dos botones "ACEPTAR" y "CANCELAR". Ejercicio 1 Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente cdigo Dim Val As String Val = InputBox("Cual es tu nombre", "Ejemplo 1.- INPUTBOX") MsgBox "Su nombre es: " & Val Ejercicio 2 Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente cdigo Dim Val As String Val = InputBox("Digita tu numero de cuenta", "Ejemplo 2.- INPUTBOX","ABC-123") Ejercicio 3 Reemplaza el cdigo del botn de comando anterior en el evento click e ingresa el siguiente cdigo Dim A As Double 'Nmeros con muchos decimales A = InputBox("Ingresa el precio del cual quieres obtener el IVA") A = A * 0.15 'Obtenemos el IVA MsgBox "El iva es: " & A

    FUNCION INPUTBOX (Cajas de Entrada).

    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 funcin es:

    InputBox(texto, predeterminado, ttulo)

    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, ttulo es el texto que aparecer en la barra de ttulo de la caja de entrada.

    Ejemplo

  • Crea un nuevo proyecto estndar 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 cdigo 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 nmero",0,"Multiplicar por 2") lblProd.Caption=2*Cint(numer) End Sub