VBA InputBox – Obtener la Entrada de un Usuario

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 22, 2022

Este tutorial demostrará cómo obtener información de un usuario con el cuadro de entrada de VBA.

El Cuadro de Entrada VBA nos permite solicitar al usuario que introduzca información. La información puede ser utilizada en nuestro código VBA o en una hoja de cálculo de Excel.

El Cuadro de Entrada VBA con una Variable

Podemos declarar una variable en nuestro código VBA que luego almacena la información que se escribe en el cuadro de entrada. Luego podemos utilizar esta variable en nuestro código.

Dependiendo del tipo de información que queremos que se devuelva del cuadro de entrada, podemos declarar un tipo específico de variable para devolver texto (una cadena (string) o variable variant) o para devolver un número (un entero, un largo, un doble o una variable simple).

Variable de Cadena (String) con un Cuadro de Entrada (InputBox)

Así es como se puede crear un InputBox donde los datos se devuelven en una variable de cadena.

Sub input_Box()
    Dim strInput As String
    strInput = inputBox("Este es mi InputBox", "Título del Cuadro", "Introduzca el Texto Aqui")
End Sub

InputBox Ejemplo1

 

Observe que primero declaramos una variable. A esta variable se le asignará el valor que el usuario introduzca. Usamos el tipo de variable String para que la caja de entrada acepte cadenas de texto (que incluye cualquier carácter numérico alfa).

Variable Numérica con un Cuadro de Entrada (InputBox)

Si declara una variable numérica, tendrá que introducir un número sólo en el cuadro de entrada.

Sub input_Box_Num()
    Dim iInput As Integer
    iInput = inputBox("Por favor introduzca un número", "Crear Factura Númerica", 1)
End Sub

Primero declaramos la variable numérica como una variable entera. Entonces también podemos poner un valor por defecto de 1 en el cuadro de entrada.

InputBox Numérico

 

Si introdujéramos una cadena en lugar de un número y luego hiciéramos clic en Aceptar, obtendríamos un Error de Tipo ya que una variable numérica no acepta una cadena.

InputBox Numérico Error de Tipo

 

Obtener Información de Un Usuario

Este es otro ejemplo que utiliza las características más populares de un InputBox.

InputBox Usuario

El siguiente código hace tres cosas:

1. Solicita una entrada con un InputBox y la asigna a una variable

2. Verifica la entrada, de lo contrario sale del Procedimiento

3. Devuelve la entrada en un cuadro de mensajes

Public Sub MyInputBox()

    Dim MyInput As String
    MyInput = inputBox("Este es mi InputBox", "Título del Cuadro", "Introduzca su texto AQUI")
    
    
    If MyInput = "Introduzca su texto AQUI" Or MyInput = "" Then
      Exit Sub
    End If
    
    MsgBox "El texto de Mi InputBox es " & MyInput
End Sub

Devolver la Entrada a una Hoja de Excel

Puede devolver la entrada que escriba en un cuadro de entrada a una celda específica de su hoja de Excel.

Range("P3") = inputBox("Este es mi InputBox", "Título del Cuadro", "Introduzca su texto AQUI")

InputBox a Un Rango Celda

 

También podemos devolver los datos de entrada a una hoja de Excel utilizando una variable.

Sub IntroducirUnNumero()
   On Error Resume Next
   Dim dblAmount As Double
   dblAmount = inputBox("Por favor introduzca la cantidad requerida", "Introduzca Cantidad")
   If dblAmount <> 0 Then
      Range("A1") = dblAmount
   Else
      MsgBox "No has introducido ningún número.!"
   End If
End Sub

En el ejemplo anterior, se nos pide que introduzcamos un número. Si introducimos un número, la variable dblAmount pondrá el número en la hoja de Excel en la celda A1. Sin embargo, si no introducimos un número, entonces un cuadro de mensaje nos dirá que no hemos introducido un número y no se pondrá nada en la celda A1.

Manejo de Error InputBox

 

Uso de VBA InputBox en Access VBA

El cuadro de entrada de VBA funciona exactamente igual en Access que en Excel cuando devuelve la entrada del usuario en forma de cuadro de mensaje. Sin embargo, si desea devolver la entrada del usuario a la base de datos, tendrá que utilizar el objeto Recordset en lugar del objeto Range como se utiliza en Excel.

Sub IntroducirNumeroDeFactura()
   Dim dbs As Database
   Dim rst As Recordset
   Set dbs = CurrentDb
   Set rst = dbs.OpenRecordset("tblMatters", dbOpenDynaset)
   With rst
      .AddNew
      !InvNo = InputBox("Por favor, introduzca el número de factura", "GENERACIÓN DE NÚMEROS DE FACTURA", 1)
      .Update
   End With
   rst.Close
   Set rst = Nothing
   Set dbs = Nothing
End Sub

InputBox Access

 

La codificación VBA es fácil

Deje de buscar código VBA en línea. Aprenda más sobre AutoMacro – Un generador de código VBA que permite a los principiantes codificar procedimientos desde cero con un mínimo conocimiento de codificación y con muchas características que ahorran tiempo a todos los usuarios

alt text

 

Más información

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples