Condividi tramite


Procedura: inserire testo nei documenti di Word

Aggiornamento: novembre 2007

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Tipo di progetto

  • Progetti a livello di documento

  • Progetti a livello di applicazione

Versione Microsoft Office

  • Word 2003

  • Word 2007

Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione.

Per inserire un testo nei documenti di Microsoft Office Word sono disponibili tre metodi principali:

  • Inserire testo in un intervallo.

  • Sostituire il testo in un intervallo con nuovo testo.

  • Utilizzare il metodo TypeText di un oggetto Selection per inserire il testo in corrispondenza del cursore o della selezione.

    Nota:

    È anche possibile inserire il testo all'interno di controlli del contenuto o di segnalibri. Per ulteriori informazioni, vedere°Controlli contenuto e Controllo Bookmark.

Inserimento di testo in un intervallo

Per inserire testo in un documento, utilizzare la proprietà Text di un oggetto Range.

Per inserire testo in un intervallo

  1. Specificare un intervallo all'inizio di un documento e inserire il testo New Text.

    L'esempio di codice seguente può essere utilizzato in una personalizzazione a livello di documento.

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

    L'esempio di codice seguente può essere utilizzato in un componente aggiuntivo a livello di applicazione. In questo codice viene utilizzato il documento attivo.

    Dim rng As Word.Range = Me.Application.ActiveDocument.Range(Start:=0, End:=0)
    rng.Text = " New Text "
    
    object start = 0;
    object end = 0;
    
    Word.Range rng = this.Application.ActiveDocument.Range(
        ref start, ref end);
    rng.Text = "New Text";
    
  2. Selezionare l'oggetto Range che è stato espanso da un carattere alla lunghezza del testo inserito.

    rng.Select()
    
    rng.Select();
    

Sostituzione del testo in un intervallo

Se l'intervallo specificato contiene testo, tutto il testo nell'intervallo verrà sostituito con il testo inserito.

Per sostituire il testo in un intervallo

  1. Creare un oggetto Range costituito dai primi 12 caratteri del documento.

    L'esempio di codice seguente può essere utilizzato in una personalizzazione a livello di documento.

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

    L'esempio di codice seguente può essere utilizzato in un componente aggiuntivo a livello di applicazione. In questo codice viene utilizzato il documento attivo.

    Dim rng As Word.Range = Me.Application.ActiveDocument.Range(Start:=0, End:=12)
    
    object start = 0;
    object end = 12;
    
    Word.Range rng = this.Application.ActiveDocument.Range(
        ref start, ref end);
    
  2. Sostituire questi caratteri con la stringa New Text.

    rng.Text = " New Text "
    
    rng.Text = "New Text"; 
    
  3. Selezionare l'intervallo.

    rng.Select()
    
    rng.Select();
    

Inserimento di testo mediante TypeText

Il metodo TypeText consente di inserire testo nella selezione. TypeText si comporta in modo diverso a seconda delle opzioni impostate sul computer dell'utente. Nel codice della routine riportata di seguito viene dichiarata una variabile oggetto Selection e viene disattivata l'opzione Overtype, se attivata. Se l'opzione Overtype è attivata, il testo accanto al cursore verrà sovrascritto.

Per inserire testo mediante il metodo TypeText

  1. Dichiarare una variabile oggetto Selection.

    Dim currentSelection As Word.Selection = Application.Selection
    
    Word.Selection currentSelection = Application.Selection; 
    
  2. Disattivare l'opzione Overtype, se attivata.

    If Application.Options.Overtype Then
        Application.Options.Overtype = False
    End If
    
    if (Application.Options.Overtype) 
    { 
        Application.Options.Overtype = false; 
    } 
    
  3. Eseguire un test per verificare se la selezione corrente è costituita da un punto di inserimento.

    In questo caso, tramite il codice verrà inserita una frase mediante TypeText e quindi un segno di paragrafo utilizzando il metodo TypeParagraph:

    With currentSelection
    
        ' Test to see if selection is an insertion point.
        If .Type = Word.WdSelectionType.wdSelectionIP Then
            .TypeText("Inserting at insertion point. ")
            .TypeParagraph()
    
    // Test to see if selection is an insertion point.
    if (currentSelection.Type == Word.WdSelectionType.wdSelectionIP) 
    { 
        currentSelection.TypeText("Inserting at insertion point. ");
        currentSelection.TypeParagraph(); 
    } 
    
  4. Con il codice contenuto nel blocco ElseIf viene eseguito un test per verificare se la selezione corrisponde a una selezione normale. In questo caso, mediante un altro blocco If verrà eseguito un test per verificare se l'opzione ReplaceSelection è attivata. Se è attivata, nel codice verrà utilizzato il metodo Collapse della selezione per comprimere la selezione in un punto di inserimento all'inizio del blocco di testo selezionato. Inserire il testo e un segno di paragrafo.

    ElseIf .Type = Word.WdSelectionType.wdSelectionNormal Then
        ' Move to start of selection.
        If Application.Options.ReplaceSelection Then
            .Collapse(Direction:=Word.WdCollapseDirection.wdCollapseStart)
        End If
        .TypeText("Inserting before a text block. ")
        .TypeParagraph()
    
    else 
        if (currentSelection.Type == Word.WdSelectionType.wdSelectionNormal)
        { 
            // Move to start of selection.
            if (Application.Options.ReplaceSelection)
            { 
                object direction = Word.WdCollapseDirection.wdCollapseStart;
                currentSelection.Collapse(ref direction);
            }
            currentSelection.TypeText("Inserting before a text block. ");
            currentSelection.TypeParagraph();
        }
    
  5. Se la selezione non è costituita da un punto di inserimento o da testo selezionato, il codice contenuto nel blocco Else non determinerà l'esecuzione di alcuna operazione.

    Else
        ' Do nothing.
    End If
    
    else
    {
        // Do nothing.
    }
    

È inoltre possibile utilizzare il metodo TypeBackspace dell'oggetto Selection, che riproduce il funzionamento del tasto BACKSPACE della tastiera. Ai fini dell'inserimento e della modifica di testo, tuttavia, l'oggetto Range offre un maggiore controllo.

Nell'esempio seguente viene illustrato il codice completo. Per utilizzare questo esempio, eseguire il codice dalla classe ThisDocument o ThisAddIn nel progetto.

Friend Sub SelectionInsertText()
    Dim currentSelection As Word.Selection = Application.Selection

    ' Store the user's current Overtype selection
    Dim userOvertype As Boolean = Application.Options.Overtype

    ' Make sure Overtype is turned off.
    If Application.Options.Overtype Then
        Application.Options.Overtype = False
    End If

    With currentSelection

        ' Test to see if selection is an insertion point.
        If .Type = Word.WdSelectionType.wdSelectionIP Then
            .TypeText("Inserting at insertion point. ")
            .TypeParagraph()

        ElseIf .Type = Word.WdSelectionType.wdSelectionNormal Then
            ' Move to start of selection.
            If Application.Options.ReplaceSelection Then
                .Collapse(Direction:=Word.WdCollapseDirection.wdCollapseStart)
            End If
            .TypeText("Inserting before a text block. ")
            .TypeParagraph()

            Else
                ' Do nothing.
            End If
    End With

    ' Restore the user's Overtype selection
    Application.Options.Overtype = userOvertype
End Sub
private void SelectionInsertText() 
{ 
    Word.Selection currentSelection = Application.Selection; 

    // Store the user's current Overtype selection
    bool userOvertype = Application.Options.Overtype;

    // Make sure Overtype is turned off.
    if (Application.Options.Overtype) 
    { 
        Application.Options.Overtype = false; 
    } 

    // Test to see if selection is an insertion point.
    if (currentSelection.Type == Word.WdSelectionType.wdSelectionIP) 
    { 
        currentSelection.TypeText("Inserting at insertion point. ");
        currentSelection.TypeParagraph(); 
    } 
    else 
        if (currentSelection.Type == Word.WdSelectionType.wdSelectionNormal)
        { 
            // Move to start of selection.
            if (Application.Options.ReplaceSelection)
            { 
                object direction = Word.WdCollapseDirection.wdCollapseStart;
                currentSelection.Collapse(ref direction);
            }
            currentSelection.TypeText("Inserting before a text block. ");
            currentSelection.TypeParagraph();
        }
        else
        {
            // Do nothing.
        }

    // Restore the user's Overtype selection
    Application.Options.Overtype = userOvertype;
}

Vedere anche

Attività

Procedura: formattare il testo nei documenti

Procedura: definire e selezionare intervalli nei documenti

Procedura: estendere gli intervalli nei documenti