How to: Programmatically define and select ranges in documents

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

You can define a range in a Microsoft Office Word document by using a Range object. You can select the entire document in a number of ways, for example, by using the Select method of the Range object, or by using the Content property of the Document class (in a document-level customization) or the Document class (in a VSTO Add-in).

Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for Word. For more information, see Features available by Office application and project type.

Define a range

The following example shows how to create a new Range object that includes the first seven characters in the active document, including non-printing characters. It then selects the text within the range.

To define a range in a document-level customization

  1. Add the range to the document by passing a start and end character to the Range method of the Document class. To use this code example, run it from the ThisDocument class in your project.

    Dim rng As Word.Range = Me.Range(Start:=0, End:=7)
    rng.Select()
    
    object start = 0; 
    object end = 7; 
    Word.Range rng = this.Range(ref start, ref end); 
    
    rng.Select();
    

To define a range by using a VSTO Add-in

  1. Add the range to the document by passing a start and end character to the Range method of the Document class. The following code example adds a range to the active document. To use this code example, run it from the ThisAddIn class in your project.

    Dim rng As Word.Range = Me.Application.ActiveDocument.Range(Start:=0, End:=7)
    rng.Select()
    
    Word.Range rng = this.Application.ActiveDocument.Range(0, 7);
    
    rng.Select();
    

Select a range in a document-level customization

The following examples show how to select the entire document by using the Select method of a Range object, or by using the Content property of the Document class.

To select the entire document as a range by using the Select method

  1. Use the Select method of a Range that contains the entire document. To use the following code example, run it from the ThisDocument class in your project.

    Me.Range.Select()
    
    object start = this.Content.Start;
    object end = this.Content.End;
    
    this.Range(ref start, ref end).Select();
    

To select the entire document as a range by using the Content property

  1. Use the Content property to define a range that encompasses the entire document.

    Me.Content.Select()
    
    this.Content.Select();
    

    You can also use the methods and properties of other objects to define a range.

To select a sentence in the active document

  1. Set the range by using the Sentences collection. Use the index of the sentence you want to select.

    Dim s2 As Word.Range = Me.Sentences(2)
    s2.Select()
    
    Word.Range s2 = this.Sentences[2]; 
    s2.Select();
    

    Another way to select a sentence is to manually set the start and end values for the range.

To select a sentence by manually setting the start and end values

  1. Create a range variable.

    Dim rng As Word.Range
    
    Word.Range rng;
    
  2. Check to see if there are at least two sentences in the document, set the Start and End arguments of the range, and then select the range.

    If Me.Sentences.Count >= 2 Then
    
        Dim startLocation As Object = Me.Sentences(2).Start
        Dim endLocation As Object = Me.Sentences(2).End
    
        ' Supply a Start and End value for the Range.
        rng = Me.Range(Start:=startLocation, End:=endLocation)
    
        ' Select the Range
        rng.Select()
    End If
    
    if (this.Sentences.Count >= 2) 
    {
        object startLocation = this.Sentences[2].Start; 
        object endLocation = this.Sentences[2].End; 
    
        // Supply a Start and End value for the Range. 
        rng = this.Range(ref startLocation, ref endLocation); 
    
        // Select the Range.
        rng.Select();
    }
    

Select a range by using a VSTO Add-in

The following examples show how to select the entire document by using the Select method of a Range object, or by using the Content property of the Document class.

To select the entire document as a range by using the Select method

  1. Use the Select method of a Range that contains the entire document. The following code example selects the contents of the active document. To use this code example, run it from the ThisAddIn class in your project.

    Me.Application.ActiveDocument.Range.Select()
    
    this.Application.ActiveDocument.Range(
        this.Application.ActiveDocument.Content.Start,
        this.Application.ActiveDocument.Content.End).Select();
    

To select the entire document as a range by using the Content property

  1. Use the Content property to define a range that encompasses the entire document.

    Me.Application.ActiveDocument.Content.Select()
    
    this.Application.ActiveDocument.Content.Select();
    

    You can also use the methods and properties of other objects to define a range.

To select a sentence in the active document

  1. Set the range by using the Sentences collection. Use the index of the sentence you want to select.

    Dim s2 As Word.Range = Me.Application.ActiveDocument.Sentences(2)
    s2.Select()
    
    Word.Range s2 = this.Application.ActiveDocument.Sentences[2];
    s2.Select();
    

    Another way to select a sentence is to manually set the start and end values for the range.

To select a sentence by manually setting the start and end values

  1. Create a range variable.

    Dim rng As Word.Range
    
    Word.Range rng;
    
  2. Check to see if there are at least two sentences in the document, set the Start and End arguments of the range, and then select the range.

    Dim document As Word.Document = Me.Application.ActiveDocument
    If document.Sentences.Count >= 2 Then
    
        Dim startLocation As Object = document.Sentences(2).Start
        Dim endLocation As Object = document.Sentences(2).End
    
        ' Supply a Start and End value for the Range.
        rng = document.Range(Start:=startLocation, End:=endLocation)
    
        ' Select the Range
        rng.Select()
    End If
    
    Word.Document document = this.Application.ActiveDocument;
    
    if (document.Sentences.Count >= 2)
    {
        object startLocation = document.Sentences[2].Start;
        object endLocation = document.Sentences[2].End;
    
        // Supply a Start and End value for the Range. 
        rng = document.Range(ref startLocation, ref endLocation);
    
        // Select the Range.
        rng.Select();
    }
    

See also