Video: Curso Excel VBA y Macros - Cap. 44 - Cuadro de diálogo Abrir archivo usando GetOpenFilename 2025
Puede usar la función InputBox para agregar cuadros de diálogo a sus macros de Excel 2013. Cuando ejecuta la macro, esta función de Visual Basic hace que Excel muestre un cuadro de diálogo de entrada donde puede ingresar cualquier título que tenga sentido para la nueva hoja de cálculo. El macro luego coloca ese texto en la celda actual y formatea este texto, si eso es lo que ha entrenado a su macro para hacer a continuación.
Para ver qué fácil es usar la función InputBox para agregar interactividad a una macro que de otro modo sería sólida, siga los pasos para convertir la macro Company_Name que actualmente ingresa el texto "Mind Over Media" a uno que realmente le pida el nombre que quieres que ingrese La función InputBox utiliza la siguiente sintaxis:
InputBox (prompt [title] [default] [xpos] [ypos] [helpfile, context])
En esta función, solo el prompt > se requiere argumento con el resto de los argumentos siendo opcionales. El argumento especifica el mensaje que aparece dentro del cuadro de diálogo Entrada, que le solicita al usuario que ingrese un nuevo valor (o en este caso, un nuevo nombre de compañía). El argumento
puede tener un máximo de 1, 024 caracteres. Si desea que el mensaje de solicitud aparezca en líneas diferentes dentro del cuadro de diálogo, ingrese las funciones Chr (13) y Chr (10) en el texto (para insertar un retorno de carro y un avance de línea en el mensaje, respectivamente).
título especifica qué texto se mostrará en la barra de título del cuadro de diálogo Entrada. Si no especifica un argumento title , Excel muestra el nombre de la aplicación en la barra de título. El argumento opcional predeterminado especifica la respuesta predeterminada que aparece automáticamente en el cuadro de texto en la parte inferior del cuadro de diálogo Entrada. Si no especifica un argumento predeterminado, el cuadro de texto está vacío en el cuadro de diálogo Entrada.
xpos y ypos especifican la distancia horizontal desde el borde izquierdo de la pantalla hasta el borde izquierdo del cuadro de diálogo y la distancia vertical desde el borde superior de la pantalla hasta el borde superior del cuadro de diálogo. Si no especifica estos argumentos, Excel centra el cuadro de diálogo de entrada horizontalmente y lo posiciona aproximadamente un tercio del camino verticalmente hacia abajo. Los argumentos opcionales
archivo de ayuda y contexto especifican el nombre del archivo de Ayuda personalizado que pone a disposición del usuario para explicar el funcionamiento del cuadro de diálogo Entrada, así como del tipo de los datos que acepta. Como parte del proceso de creación de un archivo de ayuda personalizado para usar en el sistema de Ayuda de Excel, le asigna al tema un número de contexto apropiado para su contenido, que luego se especifica como el argumento
contexto para el Función InputBox. Cuando especifica un archivo de ayuda y el argumento
contexto para esta función, Excel agrega un botón Ayuda al cuadro de diálogo Entrada personalizado en el que los usuarios pueden hacer clic para acceder al archivo de ayuda personalizado en la ventana de Ayuda. Antes de que pueda agregar la línea de código a la macro con la función InputBox, necesita encontrar el lugar en los comandos de Visual Basic a donde debe ir la línea. Para ingresar el texto de Mind Over Media en la celda activa, la macro Company_Name usa el siguiente comando de Visual Basic:
ActiveCell. FormulaR1C1 = "Mind Over Media"
Para agregar interactividad a la macro, debe insertar la función InputBox en una línea en la ventana de Código justo encima de esta ActiveCell. Instrucción FormulaR1C1, de la siguiente manera:
Coloque el punto de inserción en la ventana de Código al comienzo de ActiveCell. Instrucción FormulaR1C1 y presione Entrar para insertar una nueva línea.
-
Ahora que ha agregado una nueva línea, debe mover el punto de inserción hasta ella.
Presione la tecla de flecha hacia arriba para colocar el punto de inserción al comienzo de la nueva línea.
-
En esta línea, desea crear una variable que suministre el argumento
a la función InputBox. Para hacer esto, debe indicar el nombre de la variable (InputMsg en este caso) seguido de su entrada actual. Asegúrese de adjuntar el texto del mensaje en el lado derecho del signo igual en un par cerrado de comillas dobles. Escriba el siguiente código para crear la variable InputMsg en la línea 8 y luego presione la tecla Enter para iniciar una nueva línea 9:
-
InputMsg = "Ingrese el nombre o título de la compañía para esta hoja de trabajo en el cuadro de texto debajo y luego haga clic en Aceptar: "
Luego, crea una variable llamada InputTitle que proporciona el argumento opcional
title para la función InputBox. Esta variable hace que el texto "Título de hoja de cálculo" aparezca como el título del cuadro de diálogo Entrada. De nuevo, asegúrese de incluir el nombre de la barra de título del cuadro de diálogo entre comillas. Escriba el siguiente código para crear la variable InputTitle en la línea 9 y luego presione Enter para insertar una nueva línea 10:
-
InputTitle = "Título de la hoja de cálculo"
Luego, cree un nombre de variable DefaultText que proporcionó el
argumento predeterminado para la función InputBox. Esta variable hace que el texto, "Mente sobre los medios", aparezca como la entrada predeterminada en el cuadro de texto en la parte inferior del cuadro de diálogo de ingreso de nombre de empresa personalizado. Escriba el siguiente código para crear la variable DefaultText en la línea 10 y luego presione Enter para insertar una nueva línea 11:
-
DefaultText = "Mind Over Media"
Luego, crea una variable final llamada CompanyName que especifica la función InputBox como su entrada (utilizando las variables InputMsg, InputTitle y DefaultText que acaba de crear) y almacena los resultados de esta función.
Escriba el siguiente código para crear la variable SpreadsheetTitle que usa la función InputBox en la línea 11:
-
SpreadsheetTitle = InputBox (InputMsg, InputTitle, DefaultText)
Finalmente, reemplaza el valor, "Mind Over Media", en el ActiveCell.La propiedad FormulaR1C1 con la variable SpreadsheetTitle (cuyo valor está determinado por lo que ingresa en el cuadro de diálogo Entrada de Título de la Hoja de Cálculo), reemplazando efectivamente esta constante en la macro con los medios para hacer esta entrada verdaderamente interactiva.
Seleccione "Mind Over Media" en la línea 12 y reemplácelo por SpreadsheetTitle (sin comillas).
-
Guarde la macro editada haciendo clic en el botón Guardar en la barra de herramientas de Visual Basic y luego regrese a la hoja de trabajo haciendo clic en el botón Ver Microsoft Excel o presionando Alt + F11. A continuación, haga clic en el botón Ocultar en el grupo Ventana de la pestaña VER.
-
Ahora, está listo para abrir un nuevo libro de trabajo y ejecutar la macro editada presionando Ctrl + N.
La figura muestra la ventana de Código con la macro editada Company_Name después de agregar las declaraciones que la hacen interactiva.
La figura siguiente muestra el cuadro de diálogo Título de hoja de cálculo en acción en la hoja de trabajo. Este cuadro de diálogo de entrada ahora aparece automáticamente y le pide que ingrese cada vez que ejecuta la versión editada y ahora completamente interactiva de la macro Company_Name.
Para seguir adelante e ingresar Mind Over Media en la celda actual y luego formatearlo usando el resto de los comandos de macro, simplemente haga clic en Aceptar en este cuadro de diálogo personalizado. Para ingresar y formatear el nombre de otra compañía, simplemente escriba el nombre de la compañía (que automáticamente reemplaza a Mind Over Media en el cuadro de texto) antes de hacer clic en Aceptar.
