Excel VBA InputBox

Aunque la mayoría de las veces usa los datos que ya están con usted, a veces se le ocurre una situación en la que desea que el usuario ingrese los datos como nombre, edad, etc. tipo de información personal. Este tipo de información de entrada es necesaria a veces cuando realizamos una encuesta y necesitamos revisar la opinión imparcial de las personas.

Usando InputBox de Excel VBA, podemos obtener los datos de entrada del usuario. Como su nombre indica, InputBox funciona como un cuadro emergente que le pide al usuario que alimente cierta información.

Sintaxis para VBA InputBox

La siguiente es la sintaxis para VBA InputBox:

Dónde,

  • Mensaje: mensaje que se muestra al usuario. Este es el único argumento requerido, los demás argumentos son opcionales.
  • Título : es el encabezado que aparece en la ventana de diálogo después de la ejecución exitosa de la instrucción InputBox. Si no se proporciona, por defecto el sistema imprime 'Microsoft Excel' como título.
  • Predeterminado : es el valor predeterminado que aparece en el cuadro de diálogo. Podemos mantenerlo nulo también. No hay un valor predeterminado establecido para este argumento.
  • XPos : coordenada de posición de un cuadro de diálogo en el eje X.
  • YPos : coordenada de posición de un cuadro de diálogo en el eje Y.
  • Archivo de ayuda: ubicación del archivo de ayuda que se debe utilizar. Este argumento se vuelve obligatorio establecer cuando se pasa el argumento 'Contexto'.
  • Contexto : representa la ayuda ContextId para el archivo de ayuda utilizado. Obligatorio de usar cuando se pasa el argumento 'HelpFile'.
  • De todos estos argumentos, solo los primeros tres son suficientes para crear con éxito un InputBox.

Crear InputBox en Excel VBA

A continuación se detallan los diferentes pasos para crear InputBox en Excel usando el código VBA.

Puede descargar esta plantilla Excel de InputBox de VBA aquí - Plantilla Excel de InputBox de VBA
  • Abra VBE (Editor de Visual Basic presionando Alt + F11 simultáneamente en un archivo de Excel y haga clic en Insertar y agregue un nuevo Módulo en VBE.

  • Cree una macro en este módulo llamada 'Módulo1'. Asignar un nombre a la macro.

  • Escriba el comando InputBox en el editor.

Dé las siguientes entradas a la instrucción InputBox:

  • Mensaje: "¿Puedo saber su nombre completo?"
  • Título: "Información personal"
  • Valor predeterminado: "Comience a escribir aquí

Código:

 Sub InputBoxEX () InputBox "¿Puedo saber su nombre?", "Información personal", "Comience a escribir aquí" Fin Sub 

  • Presione F5 o el botón Ejecutar para ejecutar este código.

¿Cómo almacenar la salida de InputBox a las celdas?

Ha creado InputBox para obtener la entrada del usuario. Sin embargo, ¿dónde se almacenará la salida? No hemos mencionado ninguna ubicación donde se pueda almacenar la salida.

Guardemos el resultado que obtenemos de InputBox para excel celdas siguiendo los pasos a continuación en VBA:

  • Declare una nueva variable 'Nombre' con tipo como 'Variante'. Este tipo de variable puede tomar cualquier valor (numérico / cadena / lógico, etc.).

Código:

 Sub InputBoxEX () Dim Nombre como variante End Sub 

  • Use InputBox para asignar valor a esta variable llamada 'Nombre'.

Código:

 Sub InputBoxEX () Nombre atenuado como nombre de variante = InputBox ("¿Puedo saber su nombre?", "Información personal", "Comience a escribir aquí") Fin Sub 

Si pudo haber notado el paréntesis después de la instrucción InputBox, son necesarios porque estamos usando esta instrucción para una variable 'Nombre'. Tan pronto como se convierte en un valor para una variable, debe mencionarse en un formato apropiado con paréntesis.

  • Ahora, sea cual sea el valor que el usuario haya escrito en el cuadro de diálogo, queremos que se vea en la celda A1 de la hoja de Excel. Ponga la siguiente declaración para lo mismo en VBE: Rango ("A1"). Valor = Nombre.

Código:

 Sub InputBoxEX () Dim Nombre como nombre de variante = InputBox ("¿Puedo saber su nombre?", "Información personal", "Comience a escribir aquí") Rango ("A1"). Valor = Nombre Fin Sub 

Esto es todo, ahora ejecutemos este código y veamos cómo funciona.

  • Haga clic en el botón Ejecutar o presione F5 para ejecutar este código, obtendrá el siguiente cuadro de diálogo. Escriba su nombre en el cuadro de diálogo emergente con el nombre "Información personal" y presione Aceptar para ver dónde se imprime la salida.

  • Tan pronto como ingrese el valor y haga clic en Aceptar, puede ver el valor ingresado en la celda A1. Vea la captura de pantalla a continuación.

Cualquier valor puede almacenarse usando InputBox si la variable está definida correctamente. En este caso, ha definido la variable 'Nombre' como 'Variante'. El tipo de datos variante puede tomar cualquier valor de datos como dije anteriormente.

Vea el siguiente ejemplo:

Estoy dando un número como argumento para el cuadro de diálogo cuando aparece. Ver a continuación:

Haga clic en Aceptar, vea el resultado a continuación:

El valor en la celda A1 se cambia a 2019.

Ahora cambiemos el tipo de variable a Fecha.

Código:

 Sub InputBoxEX () Dim Nombre como Fecha Nombre = InputBox ("¿Puedo saber su nombre?", "Información personal", "Comience a escribir aquí") Rango ("A1"). Valor = Nombre Fin Sub 

Ejecute el código e intente ingresar el valor que no sea la fecha. Ingresaré mi nombre y haré clic en Aceptar.

  • Después de hacer clic en Aceptar, aparece un mensaje de error en tiempo de ejecución que dice "No coinciden los tipos".

Ocurrió porque el tipo de nombre de variable es Fecha ahora y le he dado un argumento de entrada diferente al valor de fecha (un nombre de cadena). Debido a que este código no se ejecuta y arroja un error.

Validación de la entrada del usuario

¿Qué sucede si le digo que la entrada del usuario puede restringirse? ¡Sí, es verdad! Puede restringir la entrada del usuario a caracteres, números o lógica, etc.

Para restringir la entrada del usuario, puede usar Application.InputBox.

La sintaxis para Application.InputBox es la siguiente:

Dónde,

Mensaje: mensaje que aparece para el usuario.

Título : título del cuadro de diálogo.

Predeterminado : valor predeterminado que aparece en el área de escritura debajo del cuadro de diálogo.

Tipo : el tipo de entrada.

Estos son los únicos argumentos importantes que son suficientes para ejecutar esta declaración.

Comencemos esto a través del ejemplo.

  • Declarar un nombre de variable como variante.

Código:

 Sub InputBoxEX () Dim Nombre como variante End Sub 

Asigne Application.InputBox a la variable llamada Name con los mismos argumentos que los que usó InputBox. es decir, indicador, título y valor predeterminado. Vea el código a continuación:

Código:

 Sub InputBoxEX () Nombre de Dim como nombre de variante = Application.InputBox ("¿Puedo saber su nombre?", "Información personal", "Comience a escribir aquí") End Sub 

Ahora, ponga una coma 5 veces para ignorar el Left, Top, HelpFile y HelpContextID. Después de 5 comas, puede especificar el tipo de entrada.

Código:

 Sub InputBoxEX () Dim Dim As Variant Name = Application.InputBox ("¿Puedo saber su nombre?", "Información personal", "Comience a escribir aquí",,,,, End Sub 

El tipo de la cadena de entrada tiene validaciones mencionadas a continuación:

  • Elija 1 como tipo en nuestra declaración. Significa que solo se aceptan números / valores numéricos en el cuadro de diálogo que aparece.

Código:

 Sub InputBoxEX () Dim Dim As Variant Name = Application.InputBox ("¿Puedo saber su nombre?", "Información personal", "Comience a escribir aquí",,,,, 1) End Sub 

  • Ejecute el código manualmente o con la tecla F5 y asigne un nombre como entrada en el área de escritura como se muestra a continuación. Luego haga clic en Aceptar y vea la Salida.

Dice, el número no es válido. Eso parece lógico porque hemos establecido el tipo de entrada variable como el número y proporcionando el texto como una entrada que no es aceptable por el sistema.

De esta manera, puede restringir al usuario para que ingrese solo los valores que desea ver a través de InputBox.

Cosas para recordar

  • InputBox acepta hasta 255 argumentos y solo puede mostrar 254. Por lo tanto, tenga cuidado con la longitud máxima que puede ingresar un usuario.
  • El método de aplicación se puede usar para establecer el tipo de datos de entrada. Sin embargo, si no se usa, debe ser más específico sobre el tipo de datos de entrada.
  • Se recomienda elegir un tipo de datos variante, ya que puede contener cualquiera de Numérico / Texto / Lógico, etc. B = Valores.

Artículos recomendados

Esta ha sido una guía para VBA InputBox. Aquí discutimos cómo crear InputBox en Excel usando el código VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Cómo usar la función FIND en Excel
  2. Crear la función VBA en Excel
  3. Guía de rango en Excel
  4. ¿Cómo utilizar la función VBAOKUP VBA?

Categoría: