Cómo usar la función InputBox en Excel 2016 VBA

  1. Software
  2. Oficina de Microsoft
  3. Excel
  4. Cómo usar la función InputBox en Excel 2016 VBA

Libro Relacionado

Programación de Excel VBA para Dummies, 4ª Edición

Por John Walkenbach

La función VBA InputBox es útil para obtener una sola pieza de información escrita por el usuario en Excle 2016. Esa información puede ser un valor, una cadena de texto o incluso una dirección de rango. Esta es una buena alternativa al desarrollo de un formulario de usuario cuando se necesita obtener sólo un valor.

Sintaxis de InputBox

He aquí una versión simplificada de la sintaxis de la función InputBox:

InputBox(aviso[, título][, predeterminado])

La función InputBox acepta los argumentos enumerados aquí.

ArgumentWhat It AffectsPromptEl texto mostrado en el cuadro de entradaTitleEl texto mostrado en la barra de título del cuadro de entrada
(opcional)PredeterminadoEl valor predeterminado para la entrada del usuario (opcional

)Un ejemplo de InputBox

A continuación, se muestra cómo puede utilizar la función InputBox:

TheName = InputBox("¿Cuál es su nombre?", "Greetings")

Al ejecutar esta expresión VBA, Excel visualiza esta ventana de diálogo. Observe que este ejemplo utiliza sólo los dos primeros argumentos y no proporciona un valor predeterminado. Cuando el usuario introduce un valor y hace clic en OK, el código asigna el valor a la variable TheName.

La función InputBox muestra esta ventana de diálogo.

El siguiente ejemplo utiliza el tercer argumento y proporciona un valor por defecto. El valor por defecto es el nombre de usuario almacenado por Excel (la propiedad UserName del objeto de la aplicación).

Sub GetName() Dim TheName As String TheName = InputBox("¿Cuál es su nombre?", _ "Greetings", Application.UserName)End Sub

La InputBox siempre muestra un botón Cancelar. Si el usuario hace clic en Cancelar, la función InputBox devuelve una cadena vacía.

La función InputBox de VBA siempre devuelve una cadena, así que si necesita obtener un valor, su código necesita hacer alguna comprobación adicional. El siguiente ejemplo utiliza la función InputBox para obtener un número. Utiliza la función IsNumeric para verificar si la cadena es un número. Si la cadena contiene un número, todo está bien. Si la entrada del usuario no puede interpretarse como un número, el código muestra un cuadro de mensaje.

Sub AddSheets() Dim Prompt As String Dim Caption As String Dim DefValue As Long Dim NumSheets As String Prompt = "¿Cuántas hojas quieres añadir?"

 Subtítulo = "Tell me..."

 DefValue = 1 NumSheets = InputBox(Prompt, Caption, DefValue) If NumSheets = "" Then Exit Sub ' Canceled If IsNumeric(NumSheets) Then If NumSheets > 0 Then Sheets.Add Count:=NumSheets Else MsgBox "Invalid number" End IfEnd Sub

Compruebe la caja de diálogo que esta rutina produce.


Otro ejemplo de uso de la función InputBox.

Otro tipo de InputBox

La información aquí presentada se aplica a la función InputBox de VBA. A Microsoft parece gustarle la confusión, así que también tiene acceso al método InputBox, que es un método del objeto Aplicación.

Una gran ventaja de utilizar el método Application InputBox es que su código puede solicitar una selección de rango. El usuario puede entonces seleccionar el rango en la hoja de trabajo resaltando las celdas. Este es un ejemplo rápido que le pide al usuario que seleccione un rango:

Sub GetRange() Dim Rng As Range On Error Resume Next Set Rng = Application.InputBox _ (prompt:="Specify a range:", Type:=8) If Rng Is Nothing Then Exit Sub MsgBox "You selected range " & Rng.AddressEnd Sub

Esto es lo que

parece.


Usar el método Application InputBox para obtener un rango.

En este simple ejemplo, el código le dice al usuario la dirección del rango que fue seleccionado. En la vida real, su código haría algo útil con el rango seleccionado. Una cosa buena de este ejemplo es que Excel se encarga del manejo de errores. Si introduce algo que no es un rango, Excel le informará al respecto y le permitirá volver a intentarlo

.

La aplicación.

El método InputBox es similar a la función InputBox de VBA, pero también tiene algunas diferencias. Consulte el sistema de ayuda para obtener más detalles.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *