Controlar otras aplicaciones de Office 2016
Automatización
Hasta ahora hemos visto varias maneras de programar en una aplicación Microsoft Access 2016. 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("T_Formaciones")
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...
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. Normalmente estará en: C:\Program Files (x86)\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 2016 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 tiene 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... |
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: C:\Program Files (x86)\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 2016. 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. |
MergeDocumentos |
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 Excel. |
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... |
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: C:\Program Files (x86)\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...