Controlar otras aplicaciones de Office 2021
Automatización
Hasta ahora hemos visto varias maneras de programar en una aplicación Microsoft Access 2021. En este capítulo, vamos a ver cómo es posible controlar desde Access el resto de las aplicaciones adicionales principales de la suite de Office, que son Excel, Word y Outlook.
1. Enlace retrasado y enlace anticipado
Durante el trabajo con variables de tipo Object, el compilador VB realiza lo que se llama enlace cuando se asigna una variable a un valor, como en el siguiente ejemplo:
Set Tbl = CurrentDb.TableDefs("ENI_CONTRATO_CON")
Para poder realizar un enlace entre una variable y un objeto, la variable debe estar declarada con antelación en el programa. Esta declaración desembocará en dos posibles enlaces.
a. Enlace anticipado o Early Binding
Cuando la variable se declara con su tipo concreto, como en el siguiente ejemplo, se dice que el enlace es anticipado:
Dim Tbl As TableDef
Este tipo de declaración permite al código prever el espacio de memoria necesario para almacenar el tipo de la variable. También tenemos la ventaja de poder hacer referencia a los métodos y propiedades del tipo de objeto utilizando la funcionalidad de autocompletar.
Para que esta sintaxis sea posible, es necesario añadir al proyecto la referencia a la librería implicada (Herramientas - Referencias).
Se tiende a dar prioridad a este tipo de declaración cuando se puede hacer.
b. Enlace retrasado o Late Binding
Cuando la variable se declara de tipo Object, como en el siguiente ejemplo, se dice que la declaración es retrasada, es decir, que no se define concretamente a priori el tipo de la variable.
Dim Tbl As Object
Esta sintaxis permite crear una variable de tipo Object, pero sin saber más a este nivel del programa. Por tanto, no existen las ventajas del enlace anticipado. La funcionalidad de autocompletar o la ayuda interactiva ([F1]) ya no están disponibles. El código...
Controlar Excel
Para controlar la aplicación Excel, es necesario añadir la librería Microsoft Excel 16.0 Object Library en las referencias al proyecto (Herramientas - Referencias).
Si no encuentra esta librería en la lista disponible, puede hacer clic en Examinar y buscar el archivo Excel.exe en su máquina, en la que normalmente estará en la siguiente ubicación, en función de si su máquina está en 64 o 32 bits: C:\Program Files\ (x86) Microsoft Office\root\Office16\EXCEL.EXE
Incluso:
C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE
1. Jerarquía de los objetos de Excel
El siguiente esquema representa la jerarquía de los principales objetos y colecciones disponibles en Microsoft Excel.
2. Los formatos de Excel
Los diferentes formatos que se soportan aparecen en la interfaz de Excel 2021 que permite guardar.
Respecto a los archivos que se definen como "archivos de Excel", hay varias extensiones de archivos. En esta sección se va a recordar las diferentes versiones que puede manipular.
a. Antes de Excel 2007 - .xls
La extensión histórica de los archivos Excel es .xls. El nombre de este formato es Libro de Microsoft Excel 97-2003, y contiene entre 16.384 y 65.536 filas, según las versiones, con 256 columnas.
b. Después de Excel 2007
Cuando salió la versión Microsoft Excel 2007, aparecieron varias nuevas extensiones. El soporte del formato XML y el aumento de la capacidad de almacenamiento de los archivos son las principales evoluciones y mejoras añadidas a estos.
Extensión |
Formato |
Descripción |
xlsx |
Libro de Excel |
Formato por defecto, archivo sin macro. |
xlsm |
Libro de Excel que soporta las macros |
Formato que permite guardar módulos de código VBA. |
xlsb |
Libro de Excel binario |
Formato que permite almacenar macros, haciendo más compacto el archivo. |
xlt, xltx, xltm |
Libro plantilla de Excel |
Formato de plantilla, xlt es anterior a Microsoft Excel 2007, xltx es una plantilla sin macro, xltm una plantilla con macro. |
Las extensiones de archivos que se utilizan más habitualmente son xlsx y xlsm, y en menor medida xlsb, a pesar de que su rendimiento y tamaño reducido que ofrece a contenido equivalente.
También hay extensiones de archivos compatibles, pero que no tienen interés actualmente, vista la evolución de la tecnología y, fundamentalmente, la llegada de la cinta de opciones.
Extensiones compatibles pero anticuadas |
Descripción |
xlb |
Archivo para la administración de las barras de herramientas y comandos, que hoy se sustituyen por la cinta de opciones. |
xll |
Formato equivalente a las dll de Excel; permite que esté disponible el código VBA del libro. |
xlw |
Formato que permite la apertura de varios libros de Excel al mismo tiempo. |
3. Lista de los principales objetos y colecciones de Excel
Los principales objetos y colecciones que es posible manipular con Excel son los siguientes.
a. La aplicación
El objeto Application de Excel es el objeto principal en el modelo de Excel, al mismo nivel que el objeto Application de Microsoft Access. Para que no haya conflictos de nombres, debe estar precedido del nombre de la aplicación. Por tanto, la variable que representa el objeto Application de Excel se declarará como sigue:
Dim xlApp As Excel.Application
Observe que a este nivel del programa...
Controlar Word
Para controlar la aplicación Word, es necesario añadir la librería Microsoft Word 16.0 Object Library en las referencias del proyecto (Herramientas - Referencias).
Si no encuentra esta librería en la lista disponible, puede hacer clic en Examinar y buscar en su máquina el archivo WinWord.exe, que normalmente estará en la ubicación, según si su máquina está en 64 o 32 bits: C:\Program Files (x86)\Microsoft Office\Root\Office17\WINWORD.EXE
Incluso:
C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE
1. Jerarquía de los objetos de Word
El siguiente esquema representa la jerarquía de los principales objetos y colecciones en la aplicación.
2. Lista de los principales objetos y colecciones de Word
Los principales objetos y colecciones que es posible manipular en Word son los siguientes.
a. La aplicación
El objeto Application de Word es el objeto de más alto nivel en el modelo de Word, al mismo nivel que el objeto Application de Microsoft Access. Para no tener conflicto con los nombres, debe estar precedido del nombre de la aplicación. Por tanto, la variable que representa al objeto Application de Word, se declarará como sigue:
Dim wdApp As Word.Application
Observe que a este nivel del programa no se ha creado ninguna instancia de Word. Solo puede existir cuando la variable wdApp tenga valor. La siguiente sintaxis crea una nueva instancia de la aplicación Word durante la declaración de la variable:
Dim wdApp As New Word.Application
Para no crear procesos zombis en la máquina, convendría salir de la aplicación Word con la instrucción:
wdApp.Quit
Principales métodos
El objetivo del presente libro no es explicar exhaustivamente la aplicación Microsoft Word 2019. A continuación, se muestran los principales métodos que es interesante conocer para controlarla desde Microsoft Access.
Método |
Descripción |
CheckSpelling |
Permite la comprobación ortográfica de una palabra. |
MergeDocuments |
Permite fusionar dos documentos de Word, los elementos fusionados se marcan usando las marcas de revisión. |
OnTime |
Permite planificar la ejecución de una macro en un momento dado del futuro. |
PrintOut |
Permite la impresión del documento especificado. |
Quit |
Permite salir de Word. |
Run |
Permite ejecutar una macro o llamar a una función VBA. |
Principales propiedades
Propiedad |
Descripción |
DisplayAlerts |
Permite definir si los mensajes de alerta están activos durante la ejecución de una macro. |
International |
Permite conocer la información de los argumentos regionales e internacionales del lugar en la máquina y Microsoft Word. |
Options |
Representa las opciones de la aplicación. |
Path |
Permite conocer la ubicación de la aplicación WinWord.exe en el puesto. |
ScreenUpdating |
Permite definir si la ventana se actualiza. |
Selection |
Representa el punto de inserción. |
StatusBar |
Permite devolver o definir el texto que aparece en la barra de estado. |
System |
Permite acceder a la información relacionada con el sistema. |
VBE |
Permite acceder al código VBA de Microsoft Word. |
Ejemplo
El siguiente código crea una nueva aplicación de Word, la hace visible, muestra la versión de la aplicación y después la cierra:
Sub EjemploWord1() ...
Controlar Outlook
Para controlar la aplicación Outlook, es necesario añadir la librería Microsoft Outlook 16.0 Object Library a las referencias del proyecto (Herramientas - Referencias).
Si no encuentra esta librería en la lista disponible, puede hacer clic en Examinar y buscar el archivo MSOUTL.OLB en su máquina, que normalmente está, en función de si su máquina está en 64 o 32 bits en: C:\Program Files (x86)\Office16\Root\Office16\MSOUTL.OLB
Incluso:
C:\Program Files\Microsoft Office\root\Office16\MSOUTL.OLB
1. Jerarquía de los objetos de Outlook
El siguiente esquema representa la jerarquía de los principales objetos y colecciones de la aplicación Outlook.
2. Lista de los principales objetos y colecciones de Outlook
Los principales objetos y colecciones que es posible manipular en Outlook son los siguientes.
a. La aplicación
El objeto Application de Outlook es el objeto en el modelo de Outlook, al mismo nivel que el objeto Application de Microsoft Access. Para no tener conflicto con los nombres, debe estar precedido del nombre de la aplicación. Por tanto, la variable que representa el objeto Application de Outlook se declarará como sigue:
Dim olApp As Outlook.Application
Observe que en este nivel del programa no se ha creado ninguna instancia de Outlook. No puede existir hasta que la variable olApp tenga valor. La siguiente sintaxis crea una nueva instancia de la aplicación Outlook durante la declaración de la variable:
Dim olApp As New Outlook.Application
Para no crear procesos zombis en la máquina, conviene salir de la aplicación Outlook con la instrucción:
olApp.Quit
Principales métodos
El objetivo de este libro no es ser exhaustivo en la explicación de la aplicación Outlook. A continuación, se muestran los principales métodos que es interesante conocer para controlarla desde Microsoft Access.
Método |
Descripción |
CreateItem |
Permite crear un nuevo objeto de Outlook (Reunión, Contacto, Mail y Tarea, entre de otras). |
Quit |
Permite salir de Outlook. |
Principales propiedades
Propiedad |
Descripción |
DefaultProfileName |
Permite obtener el nombre del perfil por defecto en Outlook. |
Session |
Permite manipular la información de la sesión actual en Outlook. |
Ejemplo
El siguiente código crea una nueva aplicación de Outlook, la hace visible y después la cierra.
Dim olApp As New Outlook.Application
olApp.Visible = True
olApp.Quit
Para acceder a las carpetas, e-mails o incluso a los contactos y reuniones, se pasa por un objeto NameSpace, que representa la raíz de la herramienta Outlook. El NameSpace se recupera usando la función GetNameSpace("MAPI").
b. Los e-mails MailItem
El objeto MailItem es el objeto que representa un e-mail de Outlook. Para declarar una variable de tipo MailItem, es posible la siguiente sintaxis:
Dim olmail As Outlook.MailItem
Principales métodos de MailItem
Método |
Descripción |
Close |
Permite cerrar el e-mail. |
Delete |
Permite eliminar el e-mail. |
Forward |
Permite reenviar el e-mail. |
PrintOut |
Permite imprimir el e-mail. |
Reply |
Permite crear un mail de respuesta, poniendo como destinataria la persona que envió el e-mail original. |
ReplyAll |
Permite crear un e-mail de respuesta, poniendo como destinatarios todos los destinatarios originales... |