Contenido
La función `Input` no es una función estándar en VBA (Visual Basic for Applications). Sin embargo, VBA ofrece un método para solicitar la entrada del usuario a través de un cuadro de diálogo, que es la función `InputBox`. La función `InputBox` muestra un cuadro de diálogo que pide al usuario que introduzca algún texto.
Aquí te muestro cómo puedes usar la función `InputBox` en VBA:
Sub DemoInputBox()
Dim userInput As String
' Pide al usuario que introduzca algo
userInput = InputBox("Por favor, introduce algo:", "Título de InputBox")
' Comprueba si el usuario presionó Cancelar
If userInput = "" Then
MsgBox "El usuario canceló la operación."
Else
MsgBox "El usuario introdujo: " & userInput
End If
End Sub
En este ejemplo, `InputBox` tiene dos argumentos. El primer argumento es el mensaje que se muestra al usuario, y el segundo argumento es el título del cuadro de diálogo.
Ten en cuenta que si el usuario presiona «Cancelar», el valor que retorna `InputBox` es una cadena vacía `»»`. Puede que quieras comprobar si el usuario ha cancelado la operación, como se muestra en el ejemplo con el `If userInput = «» Then`.
Además, en VBA también puedes usar `Application.InputBox`, que es particularmente útil en Excel porque te permite especificar el tipo de datos que estás esperando que el usuario ingrese (por ejemplo, números, rangos de celdas, etc.). Aquí hay un ejemplo que utiliza `Application.InputBox` para obtener un número:
Sub DemoApplicationInputBox()
Dim userNumber As Double
' Pide al usuario que introduzca un número
userNumber = Application.InputBox("Por favor, introduce un número:", "Título de Application.InputBox", Type:=1)
' Comprueba si el usuario presionó Cancelar (se devuelve False en este caso)
If userNumber = False Then
MsgBox "El usuario canceló la operación.", vbExclamation
Else
MsgBox "El usuario introdujo: " & userNumber
End If
End Sub
En este caso, `Type:=1` especifica que se espera un valor numérico. Si el usuario presiona «Cancelar», `Application.InputBox` devuelve un valor booleano `False`, que debes verificar comparándolo con `False`, porque en un contexto numérico `False` se interpreta como `0`. Esto significa que si deseas permitir que el usuario introduzca `0`, necesitarás añadir más lógica para diferenciar entre una cancelación y la entrada de cero.