Leer en inglés

Compartir a través de


Modificar una parte de un documento

Visual Basic incluye objetos que puede usar para modificar los siguientes elementos de documento: caracteres, palabras, oraciones, párrafos y secciones. En la siguiente tabla se incluyen las propiedades que corresponden a estos elementos del documento y los objetos que devuelven.

Esta expresión Devuelve el objeto
Palabras ( índice) Range
Caracteres ( índice) Range
Oraciones ( índice) Range
Párrafos ( índice) Paragraph
Secciones ( índice) Sección

Si estas propiedades se utilizan sin índice, se devuelve una colección de objetos del mismo nombre. Por ejemplo, la propiedad Paragraphs devuelve el objeto de colección Paragraphs . Sin embargo, si se identifica un elemento de estas colecciones por su índice, se devuelve el objeto de la segunda columna de la tabla. Por ejemplo, Words(1) devuelve un objeto Range . Una vez creado un objeto Range, puede utilizar cualquiera de las propiedades o métodos de intervalo para modificar el objeto Range. Por ejemplo, con la siguiente instrucción se copia la primera palabra de la selección en el Portapapeles.

Sub CopyWord() 
    Selection.Words(1).Copy 
End Sub

Nota Los elementos de las colecciones Paragraphs y Sections son formas singulares de la colección, específicamente objetos Paragraph y objetos Section , en lugar de objetos Range . De hecho, la mayoría de las colecciones del modelo de objetos de Word tienen objetos de formulario singulares con los que puede trabajar. Sin embargo, la propiedad Range (que devuelve un objeto Range) está disponible tanto con el objeto Paragraph como con el objeto Section, y con la mayoría de los demás objetos que forman parte de colecciones. Por ejemplo, con la siguiente instrucción se copia el primer párrafo del documento activo en el Portapapeles.

Sub CopyParagraph() 
    ActiveDocument.Paragraphs(1).Range.Copy 
End Sub

Todas las propiedades de los elementos del documento de la tabla anterior están disponibles en los objetos Document, Selection y Range. En los ejemplos siguientes se muestra cómo puede explorar en profundidad estas propiedades desde objetos Document, Selection y Range . En el siguiente ejemplo, se establece si la primera palabra del documento activo va en mayúsculas o minúsculas.

Sub ChangeCase() 
    ActiveDocument.Words(1).Case = wdUpperCase 
End Sub

En el siguiente ejemplo, se establece el margen inferior de la sección actual en 0,5 pulgadas.

Sub ChangeSectionMargin() 
    Selection.Sections(1).PageSetup.BottomMargin = InchesToPoints(0.5) 
End Sub

En el ejemplo siguiente se espacios dobles en el texto del documento activo (la propiedad Content devuelve un objeto Range ).

Sub DoubleSpaceDocument() 
    ActiveDocument.Content.ParagraphFormat.Space2 
End Sub

Modificar un grupo de elementos de documento

Para modificar un intervalo de texto formado por un grupo de elementos de documento (caracteres, palabras, oraciones, párrafos o secciones), necesita crear un objeto Range. El método Range crea un objeto Range, dados un extremo inicial y final. Por ejemplo, con la siguiente instrucción se crea un objeto Range que hace referencia a los diez primeros caracteres del documento activo.

Sub SetRangeForFirstTenCharacters() 
    Dim rngTenCharacters As Range 
    Set rngTenCharacters = ActiveDocument.Range(Start:=0, End:=10) 
End Sub

Con las propiedades Start y End con un objeto Range , puede crear un nuevo objeto Range que haga referencia a un grupo de elementos de documento. Por ejemplo, la siguiente instrucción crea un objeto Range ( rngThreeWords) que hace referencia a las tres primeras palabras del documento activo.

Sub SetRangeForFirstThreeWords() 
    Dim docActive As Document 
    Dim rngThreeWords As Range 
    Set docActive = ActiveDocument 
    Set rngThreeWords = docActive.Range(Start:=docActive.Words(1).Start, _ 
        End:=docActive.Words(3).End) 
End Sub

En el ejemplo siguiente se crea un objeto Range ( rngParagraphs) que comienza al principio del segundo párrafo y termina después del tercer párrafo.

Sub SetParagraphRange() 
    Dim docActive As Document 
    Dim rngParagraphs As Range 
    Set docActive = ActiveDocument 
    Set rngParagraphs = docActive.Range(Start:=docActive.Paragraphs(2).Range.Start, _ 
        End:=docActive.Paragraphs(3).Range.End) 
End Sub

Para obtener más información sobre la definición de objetos Range, vea Trabajar con objetos Range.

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.