El Objeto Document

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.Name
Else
    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 If
End 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.Display
fSelected = dlg.Name
If aButton = -1 Then
    Documents.Open FileName:=fSelected
End If

Ejemplo 5: Activa un documento llamado "Sample.doc" si ya está abierto; si no lo está, el ejemplo lo abre

docFound = True
For Each aDoc In Documents
    If InStr(1, aDoc.Name, "sample.doc", 1) Then 
        aDoc.Activate
    Exit For
    Else
        docFound = False
    End If
Next aDoc
If 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

 Lección 3

tombrad@webhost.cl
http://fly.to/arica