VBA InputBox – Obtener la Entrada de un Usuario
In this Article
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
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.
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.
Obtener Información de Un Usuario
Este es otro ejemplo que utiliza las características más populares de un InputBox.
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")
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.
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
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