Curso Excel VBA y Macros – Cap. 21 – Función y Método InputBox para capturar valores
Ya vimos cómo mostrar mensajes informativos con VBA, además de poder interactuar con ellos tomando decisiones en base a los botones que se presionen del mensaje.
Ahora toca aprender una Función, pero que a la vez también es un Método. Hablo de InputBox, que nos servirá para pedirle a los usuarios que ingresen o capturen un valor, para posteriormente ese valor guardarlo en una variable y usarlo durante la macro.
-
La función InputBox mostrará un cuadro de diálogo para pedirle al usuario que ingrese un valor.
-
El método InputBox mostrará un cuadro de diálogo para que el usuario ingrese distintos tipos de valores, como números, texto o incluso rangos de celdas.
Ver video Capítulo 21 Excel VBA & Macros
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Función InputBox
Cuando deseamos que el usuario ingrese valores, usamos InputBox. Si queremos que el usuario capture varios valores, es mejor usar Formularios, pero InputBox es una excelente alternativa para poder interactuar con el usuario final de una aplicación y pedirle que capture datos.
Sintaxis función InputBox
Les muestro la sintaxis para la función InputBox
InputBox(prompt, [ title ], [ default ], [ xpos ], [ ypos ], [ helpfile, context ])
Donde:
Argumento |
Descripción |
prompt |
Es la cadena de texto que se mostrará en el cuadro de diálogo. El máximo de caracteres es 1024 y también se puede usar el carácter Chr(13), salto de carro, o Crh(10) salto de línea. |
title |
El título de la ventana. |
default |
El valor predeterminado que se mostrará en el cuadro de diálogo, en la sección para capturar un valor. |
xpos |
Es la distancia desde el borde izquierdo de la pantalla donde se desee posicionar el cuadro de diálogo. Los valores se miden en twips. |
ypos |
Es la distancia desde el borde superior de la pantalla donde se desee posicionar el cuadro de diálogo. Los valores se miden en twips. |
helpfile |
El archivo de ayuda que se mostrará para proporcionar información extra. |
context |
Dentro del archivo de ayuda, es la sección a donde se apuntará. |
Ejemplo de la función InputBox
En este ejemplo mostraremos un cuadro de diálogo donde pediremos un nombre. Ese nombre o ese valor se lo asignaremos a todas las hojas del archivo y al final de cada valor se añadirá un número correlativo, es decir, Hoja1, Hoja2, hasta la última.
Option Explicit 'EXCELeINFO 'MVP Sergio Alejandro Campos 'http://www.exceleinfo.com 'https://www.youtube.com/user/sergioacamposh 'http://blogs.itpro.es/exceleinfo Public Const Titulo = "EXCELeINFO" Sub NombreCorrelativo() Dim Texto As String Dim Correlativo As Integer Dim Hoja As Worksheet Correlativo = 1 Texto = InputBox("Nombre de la hoja", Titulo, "Hoja") For Each Hoja In Application.Worksheets Hoja.Name = Texto & " " & Correlativo Correlativo = Correlativo + 1 Next Hoja End Sub
Método InputBox
El método InputBox es mucho más versátil que la función, y hasta me atrevería a decir que nos ahorra líneas de código al valor el ingreso de valores en este cuadro de diálogo. Ya que le podemos definir que acepte solo texto, número, rangos, valores booleanos, entre otros.
Sintaxis método Inputbox
Les muestro la sintaxis para el método InputBox
Application.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
Donde:
Argumento |
Descripción |
Prompt |
Es la cadena de texto que se mostrará en el cuadro de diálogo. El máximo de caracteres es 1024 y también se puede usar el carácter Chr(13), salto de carro, o Crh(10) salto de línea. |
Title |
El título de la ventana. |
Default |
El valor predeterminado que se mostrará en el cuadro de diálogo, en la sección para capturar un valor. |
Left |
Es la distancia desde la esquina superior izquierda de la pantalla donde se desee posicionar el cuadro de diálogo. Los valores se miden en puntos. |
Top |
Es la distancia desde el borde superior de la pantalla donde se desee posicionar el cuadro de diálogo. Los valores se miden en puntos. |
HelpFile |
El archivo de ayuda que se mostrará para proporcionar información extra. |
HelpContextID |
Dentro del archivo de ayuda, es la sección a donde se apuntará. |
Type |
Es el tipo de datos que se devolverá, si se omite el argumento, por default será texto. |
Ejemplos del método InputBox
En esta macro mostraremos el cuadro de diálogo y podremos elegir un rango de celdas para posteriormente darle formato de millares con contenido.
Sub FormatearRango() Dim MiRango As Range Set MiRango = Application.InputBox("Rango", Titulo, Type:=8) MiRango.Style = "Comma" End Sub
En esta macro haremos un cálculo del porcentaje de un número, por lo que requerimos que en cuadro de diálogo se acepten solo valores numéricos. Usaremos InputBox en dos ocasiones para pedir ambos números y realizar el cálculo.
Sub ObtenerPorcentaje() Dim Num1 As Integer Dim Num2 As Integer Dim Resultado As Double Num1 = Application.InputBox("Ingresa el porcentaje en número", Titulo, Type:=1) Num2 = Application.InputBox("Ingresa el número", Titulo, Type:=1) Resultado = Num1 * (Num2 / 100) MsgBox Resultado, vbInformation, Titulo End Sub
Descarga el archivo de ejemplo
020 – Función MsgBox – EXCELeINFO.zip
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.