Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

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).

Images/ri011_1.png

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.

images/RI11-08.png

2. Los formatos de Excel

Los diferentes formatos que se soportan aparecen en la interfaz de Excel 2021 que permite guardar.

images/RI11-09.png

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).

Images/ri011_2.png

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.

images/RI11-30.png

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).

images/RI11_43.png

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.

images/RI11-44.png

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...