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