Método Application.InputBox (Excel)

Muestra un cuadro de diálogo para la entrada del usuario. Devuelve la información introducida en el cuadro de diálogo.

Sintaxis

expresión.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)

expresión Variable que representa un objeto Application.

Parámetros

Nombre Obligatorio/opcional Tipo de datos Descripción
Prompt Necesario String Mensaje que se mostrará en el cuadro de diálogo. Puede ser una cadena, un número, una fecha o un valor booleano (Microsoft Excel convierte automáticamente el valor en String antes de que se muestre). La longitud máxima es de 255 caracteres, en caso contrario, no hay indicación, y el método de la aplicación devolverá el error 2015 inmediatamente.
Título Opcional Variant Título para el cuadro de entrada. Si este argumento se omite, el título predeterminado será "Entrada".
Default Opcional Variant Especifica un valor que aparecerá en el cuadro de texto cuando se muestre inicialmente el cuadro de diálogo. Si este argumento se omite, el cuadro de texto permanecerá vacío. Este valor puede ser un objeto Range.
Izquierda Opcional Variant Especifica la posición x del cuadro de diálogo con respecto a la esquina superior izquierda de la pantalla, en puntos.
Arriba Opcional Variant Especifica la posición y del cuadro de diálogo con respecto a la esquina superior izquierda de la pantalla, en puntos.
ArchivoDeAyuda Opcional Variant Nombre del archivo de Ayuda para este cuadro de entrada. Si los argumentos ArchivoDeAyuda e IDContextoDeAyuda están presentes, aparecerá un botón Ayuda en el cuadro de diálogo.
IDContextoDeAyuda Opcional Variant Número de identificación de contexto del tema de Ayuda en HelpFile.
Tipo Opcional Variant Especifica el tipo de datos que se devuelve. Si se omite este argumento, el cuadro de diálogo devolverá texto.

Valor devuelto

Variant

Comentarios

En la tabla siguiente se enumeran los valores que se pueden pasar en el argumento Type. Puede ser uno de los valores siguientes o bien una suma de ellos. Por ejemplo, para que un cuadro de entrada acepte texto y números, establezca Tipo como 1 + 2.

Valor Descripción
0 Una fórmula
1 Un número
2 Texto (una cadena)
4 Un valor lógico (True o False)
8 Una referencia a una celda, como un objeto Range
16 Un valor de error, como por ejemplo #N/A
64 Una matriz de valores

Use InputBox para mostrar un cuadro de diálogo sencillo que permite escribir información para usarla en una macro. El cuadro de diálogo tiene un botón Aceptar y un botón Cancelar. Si hace clic en el botón Aceptar, InputBox devolverá el valor escrito en el cuadro de diálogo. Si hace clic en el botón Cancelar, InputBox devolverá False.

Si Tipo es 0, InputBox devuelve la fórmula en forma de texto, por ejemplo, =2*PI()/360. Si existen referencias en la fórmula, estas se devuelven como referencias de estilo A1. (Use ConvertFormula para convertir entre estilos de referencia).

Si Tipo es 8, InputBox devuelve un objeto Range. Debe usar la instrucción Set para asignar el resultado a un objeto Range, tal como se muestra en el ejemplo siguiente.

Set myRange = Application.InputBox(prompt := "Sample", type := 8)

Si no usa la instrucción Set, la variable se establece en el valor del rango, en lugar del objeto Range en sí.

Si usa el método InputBox para solicitar la fórmula al usuario, debe usar la propiedad FormulaLocal para asignar la fórmula a un objeto Range. La fórmula de entrada estará en el idioma del usuario.

El método InputBox difiere de la función InputBox en que permite la validación selectiva de la entrada del usuario, y se puede usar con objetos, valores de error y fórmulas de Excel. Observe que Application.InputBox llama al método InputBox. InputBox sin calificador de objeto llama a la función InputBox.

Ejemplo

En este ejemplo se solicita un número al usuario.

myNum = Application.InputBox("Enter a number")

En este ejemplo se solicita al usuario que seleccione una celda de Sheet1. Se usa el argumento Tipo para asegurar que el valor devuelto es una referencia de celda válida (un objeto Range).

Worksheets("Sheet1").Activate 
Set myCell = Application.InputBox( _ 
    prompt:="Select a cell", Type:=8)

En este ejemplo, se usa InputBox para que el usuario seleccione un rango que se pasará a la función MyFunction definida por el usuario, que multiplica tres valores de un rango y devuelve el resultado.

Sub Cbm_Value_Select()
   'Set up the variables.
   Dim rng As Range
   
   'Use the InputBox dialog to set the range for MyFunction, with some simple error handling.
   Set rng = Application.InputBox("Range:", Type:=8)
   If rng.Cells.Count <> 3 Then
     MsgBox "Length, width and height are needed -" & _
         vbLf & "please select three cells!"
      Exit Sub
   End If
   
   'Call MyFunction by value using the active cell.
   ActiveCell.Value = MyFunction(rng)
End Sub

Function MyFunction(rng As Range) As Double
   MyFunction = rng(1) * rng(2) * rng(3)
End Function

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.