¿Cómo usar la función Input en VBA?

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.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

Deja un comentario