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 introduzca
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 inputbox
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.