Curso Excel VBA y Macros – Cap. 47 – Ejecutar Cuadros de diálogo y comandos de la Cinta de opciones
Este es el último video de la sección Cuadros de diálogo integrados de Excel o “Excel’s Built-In Dialog Boxes”, donde podemos mandar llamar herramientas y Cuadros de diálogo de Excel, sin necesidad de desarrollarlos desde cero. Aunque, claro está, para formularios a medida sí será necesario desarrollarlos usando UserForms y dándoles potencia con el lenguaje VBA.
Los formularios y cuadros de diálogo son parte fundamental de las aplicaciones o programas de Windows, Linux y Mac. En Excel si bien podemos desarrollar nuestros propios formularios, es importante saber que podemos usar los cuadros de diálogos que ya incluye Excel y mandarlos llamar desde VBA.
En esta sección previa a los Userforms, veremos algunos temas referentes a Cuadros de diálogo propios de Excel:
-
Cuadro de diálogo Abrir: método GetOpenFilename.
-
Cuadro de diálogo Guardar como: método GetSaveAsFilename.
-
Objeto FileDialog para usar Cuadros de diálogo de archivo, usando msoFileDialogOpen, msoFileDialogFilePicker, msoFileDialogFolderPicker y msoFileDialogSaveAs.
-
Ejecutar cuadros de diálogos y comandos de la Cinta de opciones o Ribbon.
Ver video Capítulo 47 Excel VBA & Macros
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Llamar Cuadros de diálogo y comandos usando CommandBars.ExecuteMso
En Excel 2003 y versiones anteriores se utilizaba el objeto CommandBars para crear y ejecutar menús y barras de herramientas.
En Excel 2007 y posteriores podemos seguir usando este objeto, aunque de una manera distinta. El método ExecuteMso de la propiedad CommandBars necesitará un idMso para saber qué diálogo o comando ejecutar.
Investigar el idMso
Para investigar este ID, sigamos los siguientes pasos:
-
Clic derecho sobre la cinta de opciones.
-
Elegimos Personalizar la cinta de opciones.
-
En la parte central elegimos la opción Todos los comandos.
-
Elegimos un comando y observamos que se mostrará un mensaje de tipo ToolTip con el nombre del comando y entre paréntesis el idMso.
Figura 1. Obteniendo el idMso para el objeto CommandBars desde la Ribbon de Excel.
El siguiente es el código VBA usando el objeto CommandBars.
Sub UsarCommandBar() 'Application.CommandBars.ExecuteMso ("PivotTableInsert") 'Application.CommandBars.ExecuteMso ("Filter") 'Application.CommandBars.ExecuteMso ("SheetUnhide") 'Application.CommandBars.ExecuteMso ("SheetRename") End Sub
Figura 2. Cuadro de diálogo Cambiar nombre a hoja (SheeRename).
Mostrar Cuadros de diálogo usando la colección Dialogs
Si bien Microsoft ya no actualiza esta colección, podemos usar Dialogs para mandar llamar Cuadros de diálogo de Excel, con la ventaja que tendrán argumentos para predefinir valores.
En la siguiente macro mandamos llamar el Cuadro de diálogo Cambiar el nombre de la hoja usando el Diálogo xlDialogWorkbookName de la colección Dialogs. Mira que la macro tiene argumentos.
Sub CambiarNombre() Dim NombreActual As String Dim NuevoNombre As String NombreActual = ActiveSheet.Name NuevoNombre = "Hoja de prueba" Application.Dialogs(xlDialogWorkbookName).Show NombreActual, NuevoNombre End Sub
Con siguiente macro mandamos llamar el Cuadro de diálogo Enviar mail usando el diálogo xlDialogSendMail de la colección Dialogs.
Sub EnviarCorreo() Dim EnviarA As String Dim Asunto As String EnviarA = "micorreo@midominio.com" Asunto = "Archivo del curso" Application.Dialogs(xlDialogSendMail).Show EnviarA, Asunto End Sub
Formulario de ingreso de datos
Sin necesidad de inventar la rueda, Excel tiene su propio Formulario de ingreso, baja, eliminación y actualización de registros, solo que debemos buscarlo en los comandos disponibles. Este formulario es recomendable cuando deseamos capturar información, pero evitar hacerlo directamente en las celdas. Para mostrarlo, seguimos los siguientes pasos:
-
Clic derecho en Cinta de opciones.
-
Elegimos Personalizar la cinta de opciones.
-
En la izquierda elegimos Barra de herramientas de acceso rápido.
-
En la parte central elegimos Comando que no están en la cinta de opciones.
-
Buscamos Formulario y presionamos el botón “Angregar >>”.
Se mostrará el ícono para mandar llamar el Formulario de ingreso de datos.
Figura 3. Formulario de ingreso de datos en Excel.
Puedes mandar llamar el Formulario usando VBA.
Sub Formulario() ActiveSheet.ShowDataForm End Sub
Descarga el archivo de ejemplo
047 – Mostrar cuadros de diálogo integrados de Excel – EXCELeINFO.zip
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.