Más Sobre el Objeto Document

Para imprimir un documento le aplicamos el método printout

Por ejemplo

ActiveDocument.Printout

También podrían usarse las opciones de impresión usando el objeto Options

Options.PrintHiddenText = True
ActiveDocument.PrintOut Range:=wdPrintFromTo, From:="1", To:="3"

El objeto Close sirve para cerrar un documento, por ejemplo

Documents("Prueba.doc").Close

Se pueden agregar objetos, tales como notas al pie, comentarios o tablas a un documento usando el método Add con una colección de objetos accesada desde el objeto Document. La siguiente instrucción, por ejemplo, agrega una tabla de 3x3 localizada por la variable myRange  (myRange es una variable de objeto que contiene un objeto Range).

ActiveDocument.Tables.Add Range:=myRange, NumRows:=3, NumColumns:=3

El siguiente ejemplo agrega una nota al pie en la localización especificada por la variable myRange.

ActiveDocument.Footnotes.Add Range:=myRange, Text:="The Willow Tree"

Para una lista de la colección de objetos que soportan el método Add, vea en la ayuda bajo el tópico "Add Method"

El objeto Range permite seleccionar un rango dentro del documento, para entender el objeto Range hay que saber que existen 11 diferentes wsStoryTye correspondientes a diferentes partes de un documento que son

wdCommentsStory, wdEndnotesStory, wdEvenPagesFooterStory, wdEvenPagesHeaderStory, wdFirstPageFooterStory, wdFirstPageHeaderStory, wdFootnotesStory, wdMainTextStory, wdPrimaryFooterStory, wdPrimaryHeaderStory, and wdTextFrameStory.

Además de objetos que pueden modificarse que son:

Words(index)

Range

Characters(index)

Range

Sentences(index)

Range

Paragraphs(index)

Paragraph

Sections(index)

Section

Algunos ejemplos de uso del objeto Range

Crear un rango y almacenarlos en MiRango (las 10 primeras letras de un documento)

Set miRango = ActiveDocument.Range(Start:=0, End:=10)

Después podríamos ponerlo en cursiva con

miRango.Italics = True

También podríamos insertar una palabra antes de cierto rango con:

ActiveDocument.Range(Start:=0, End:=0).InsertBefore Text:="Hola "

Si usamos Range.Select veremos el rango “pintado” tal como cuando seleccionamos con el mouse

Set miRango = ActiveDocument.Range(Start:=0,_ End:=ActiveDocument.Paragraphs(3).Range.End)

miRango.Select

Por ejemplo si queremos colocar varios atributos a un párrafo usamos

Set myRange = ActiveDocument.Paragraphs(1).Range
With myRange
    .Bold = True
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
    .Font.Name = "Arial"
End With

El objeto Selection permite también hacer muchas de las operaciones que se hacen con Range, por ejemplo

Para mostrar el nombre de cada marcador en un documento

For Each aBook In Selection.Bookmarks
   MsgBox aBook.Name
Next aBook

Los objetos Find y Replace permiten, obviamente buscar y reemplazar texto, por ejemplo

Para buscar la palabra “Hola” dentro de un documento

With Selection.Find
    .Forward = True
    .Wrap = wdFindStop
    .Text = "Hola"
    .Execute
End With

Para reemplazar las palabras “uno” por “dos” dentro de un documento

With Selection.Find
    .ClearFormatting
    .Text = "uno"
    .Replacement.ClearFormatting
    .Replacement.Text = "dos"
    .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
 
Agregar y Editar campos en un documento
 
Para agregar campos a un documento se aplica el método Add a la colección Fields, por ejemplo para agregar el campo Fecha donde está la selección actual, usamos 
 
ActiveDocument.Fields.Add Range:=Selection.Range, Type:=wdFieldDate
 
 

Luego de agregado el campo, se obtiene (o se asigna) el resultado de ese campo usando la propiedad Result o Code. El ejemplo siguiente cambia el código del primer campo de la selección actual, lo actualiza y muestra el resultado en el campo.

If Selection.Fields.Count >= 1 Then
    With Selection.Fields(1)
        .Code.Text = "CREATEDATE \*MERGEFORMAT"
        .Update
        MsgBox .Result.Text
    End With
End If

 Lección 4

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