Inputbox en VBA

El inputbox en VBA no  es más que método que nos permite que aparezca un pop-up en el que introducir cierta información.

Como ya vimos en el caso del Msgbox (ver más), es muy frecuente en Excel usar pop-ups para interactuar con el usuario. En el caso del msgbox lo que conseguiremos será enviar al usuario un simple aviso o mensaje sencillo. Con el inputbox podremos pedirle informacion.

Qué es un Inputbox en VBA?

Un Inputbox en VBA es un pop-up como el de la siguiente imagen en la que le pedimos cierta información al usuario para que la introduzcainputbox en vba

En este caso hemos usado un código muy sencillo que es el siguiente:

Sub Input_Box()
    mi_variable = Application.InputBox("Introduzca su nombre", "Nombre")
End Sub

Como vemos en el pedacito de código anterior, el resultado de la pregunta lo almacenaremos en una variable y esto será obligatorio.

Sintaxis

La sintaxis del Inputbox en VBA no es complicada pero tiene ciertas partes que merece la pena desctacar:

Applicaiton.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)

Donde las más comunes y útiles son las siguientes:

  • Prompt: el texto que se mostrará en el pop-up. Es el único valor obligatorio
  • Title: el título del pop-up que aparecerá en la parte superior.
  • Default: el valor que mostrará por defecto el inputbox.
  • Type: el tipo de valor que podemos usar que puede ser de tipo numérico (1), texto (2), verdadero/falso (4), referencia a una celda (8), una matriz (64)…

En el caso de que el valor se deje vacío o no sea del tipo que hemos especificado VBA nos mandará un error automáticamente, así que no hará falta comprobar el tipo de dato que nos devuelve el inputbox en nuestro código VBA.

Ejemplos

Ejemplo 1: Inputbox que pide la edad de la persona

Sub Input_Box_ejemplo1()
    mi_edad = Application.InputBox(prompt:="Indique su edad:", Type:=2)
End Sub

 Ejemplo 2: Inputbox que pregunta si es correcto algo

Sub Input_Box_ejemplo2()
    Correcto = Application.InputBox(prompt:="¿Eres mayor de edad?", Type:=4)
End Sub

En este caso, si damos a OK tendremos que haber escrito correctamente VERDADERO o FALSO. En caso de no ser así nos devolverá un valor.

Ejemplo 3: Inputbox que pide el nombre de amigo y tiene otro nombre puesto por defecto.

Sub Input_Box_ejemplo3()
    n_amigo = Application.InputBox(prompt:="Indica el nombre de un amigo", _
        Default:="Quique", Type:=2)
End Sub

En la siguiente imagen vemos el resultado de este inputboxinputbox en vba nombre amigo

El nombre que habíamos puesto en nuestro código aparece en el inputbox y seleccionado.

Ejemplo 4: Inputbox para seleccionar el valor de una celda

Sub Input_Box_ejemplo4()
    celda_selec = Application.InputBox(prompt:="Seleccione una celda", Type:=8)
End Sub

Tal y como lo hemos escrito, el valor de la celda se guardará en la variable celda_selec pero no el rango celda (como objeto de VBA). Para hacer (por ejemplo si queremos saber la fila y la columna de la celda que se ha seleccionado) añadiremos un set antes de la línea de código para crear el objeto rango.

Sub Input_Box_ejemplo4_b()
   Set celda_selec = Application.InputBox(prompt:="Seleccione una celda", Type:=8)
End Sub

 Descargable con ejemplos

En el siguiente enlace podréis descargar un libro de Excel con los ejemplos que hemos estado comentado.

Ejemplos de Inputbox en VBA

Autor: Quique Arranz

Quique es un fanático del Excel desde que empezó a trabajar con ello hace unos pocos años. Adquirió su conocimiento a través de Google y de infinitas pruebas y más pruebas. Además, Quique es un entusiasta de su familia (mujer e hijos), del deporte y de la cerveza... no dudes en contactar con él para cualquier duda que tengas.

1 opinión en “Inputbox en VBA”

Comentarios cerrados.