En la lección anterior vimos nuestro primer objeto Aplication, en el tope de la jerarquía, que representaba a la aplicación Word en general, de este objeto salen todos los demás y el segundo objeto que estudiaremos (en orden de utilidad) sera Document
Sin pensar mucho podemos intuir que Document es un documento que se abre usando la aplicación Word, como podemos tener varios documentos abiertos existe además la colección Documents (con s al final) que representa a todos los documentos abiertos en una sesión.
Para programar con el modelo de objetos usamos el objeto y su propiedad o método separado por puntos, como el nombre y los apellidos, cuando un objeto es una rama de inferior jerarquía también colocamos su objeto padre por ejemplo
Aplication.Document.Open
Pero el objeto Document es global, lo que significa que no es necesario que vaya antecedido por su objeto padre Aplication, así podemos escribir
Document.Open
Y no aparecerá ningún error. Podemos, por ejemplo abrir el documento TEXT.DOC (que esté en la carpeta actual) desde un programa usando
Set miDocumento = Documents.Open(FileName:="TEST.DOC")
Analizando el ejemplo anterior podemos ver como se programa en el modelo de objetos
Set miDocumento =
sirve para recuperar el documento, asignándolo a una variable, así cada vez que nos referimos a miDocumento estaremos accesando al documento abierto llamado TEST.DOC.
Con
Documents.Open(Filename="TEXT:DOC")
tenemos que de la colección Documents usamos el método Open con la constante Filename a la cual le hemos dado el valor de TEST.DOC
Ahora podemos modificar a miDocumento como por ejemplo:
miDocumento.PageSetup.TopMargin = InchesToPoints(1.25)
En este caso usamos el método PageSetup y la propiedad TopMargin para ajustar el margen superior a 1.25 pulgadas. A estas alturas creo que ya se puede ir comprendiendo las ventajas del modelo de objetos y la forma más o menos mecánica en que se puede programar sin necesidad de recurrir a trucos de ingenio como en los viejos tiempos.
Veremos a continuación algunos ejemplos de lo que podemos hacer usando
el objeto Document, la colección Documents, sus métodos,
propiedades y constantes
Ejemplo 1: Muestra el nombre del documento activo; si no hay documentos abiertos, el
ejemplo muestra un mensaje
If Documents.Count >= 1 Then MsgBox ActiveDocument.NameElse MsgBox "No documents are open"End If
Ejemplo 2: Abre el archivo Test.doc (de
la carpeta actual) y activa el control de los cambios
Set myDoc = Documents.Open(FileName:="TEST.DOC")myDoc.TrackRevisions = True
Ejemplo 3: Muestra propiedades y
métodos del objeto FileSearch para determinar si un archivo llamado
"Test.doc" existe en la carpeta por defecto. Si el archivo es
encontrado (FoundFiles.Count = 1), se abre, de otro modo se mostrará un mensaje
defaultDir = Options.DefaultFilePath(wdDocumentsPath)With Application.FileSearch .FileName = "Test.doc" .LookIn = defaultDir .Execute If .FoundFiles.Count = 1 Then Documents.Open FileName:=defaultDir & Application.PathSeparator & "TEST.DOC" Else MsgBox "Test.doc file was not found" End IfEnd With
Ejemplo 4: Chequea el valor retornado
por el método Display.Si el usuario hace click en OK para cerrar la
dialog box, se retorna el valor -1 y el archivo, cuyo nombre esta almacenado en
la variable fSelected, se abre.
Set dlg = Dialogs(wdDialogFileOpen)aButton = dlg.DisplayfSelected = dlg.NameIf aButton = -1 Then Documents.Open FileName:=fSelectedEnd If
Ejemplo 5: Activa un documento
llamado "Sample.doc" si ya está abierto; si no lo está, el ejemplo lo
abre
docFound = TrueFor Each aDoc In Documents If InStr(1, aDoc.Name, "sample.doc", 1) Then aDoc.Activate Exit For Else docFound = False End IfNext aDocIf docFound = False Then Documents.Open _ FileName:="C:\Documents\Sample.doc"
Estos ejemplos, sacados de la documentación de Microsoft nos permiten
ver como, de una manera bastante lógica podemos manipular desde un programa el
objeto Document, en la próxima lección seguiremos investigando que más podemos
hacer con las diferentes propiedades y métodos de este importante objeto