Inserire testo a livello di codice nei documenti di Word
Esistono tre modi principali per inserire il testo nei documenti di Microsoft Office Word:
Inserire il testo in un intervallo.
Sostituire il testo in un intervallo con il nuovo testo.
Usare il metodo TypeText di un oggetto Selection per inserire il testo in corrispondenza del cursore o della selezione.
Nota
È anche possibile inserire il testo nei controlli contenuto e nei segnalibri. Per altre informazioni, vedere Controlli contenuto e controllo Segnalibro.
Si applica a: le informazioni contenute in questo argomento si applicano ai progetti a livello di documento e ai progetti di componente aggiuntivo VSTO per Word. Per altre informazioni, vedere Funzionalità disponibili per app Office lication e tipo di progetto.
Nota
Si è interessati allo sviluppo di soluzioni che estendono l'esperienza di Office tra più piattaforme? Vedere il nuovo modello di componenti aggiuntivi per Office. I componenti aggiuntivi di Office hanno un footprint ridotto rispetto ai componenti aggiuntivi e alle soluzioni VSTO ed è possibile compilarli usando quasi qualsiasi tecnologia di programmazione Web, ad esempio HTML5, JavaScript, CSS3 e XML.
Inserire testo in un intervallo
Usare la proprietà Text di un oggetto Range per inserire il testo in un documento.
Per inserire il testo in un intervallo
Specificare un intervallo all'inizio di un documento e inserire il testo New Text.
L'esempio di codice seguente può essere usato in una personalizzazione a livello di documento.
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 usato in un componente aggiuntivo VSTO. Questo codice usa il documento attivo.
Selezionare l'oggetto Range , che è stato espanso da un carattere alla lunghezza del testo inserito.
Sostituire il testo in un intervallo
Se l'intervallo specificato contiene testo, tutto il testo dell'intervallo viene sostituito con il testo inserito.
Per sostituire il testo in un intervallo
Creare un oggetto Range costituito dai primi 12 caratteri nel documento.
L'esempio di codice seguente può essere usato in una personalizzazione a livello di documento.
L'esempio di codice seguente può essere usato in un componente aggiuntivo VSTO. Questo codice usa il documento attivo.
Sostituire questi caratteri con la stringa New Text.
Selezionare l'intervallo.
Inserire testo con TypeText
Il metodo TypeText inserisce il testo in corrispondenza della selezione. TypeText si comporta in modo diverso a seconda delle opzioni impostate nel computer dell'utente. Il codice nella procedura seguente dichiara una variabile dell'oggetto Selection e disattiva l'opzione Overtype , se attivata. Se l'opzione Overtype è attivata, l'eventuale testo accanto al cursore viene sovrascritto.
Per inserire il testo usando il metodo TypeText
Dichiarare una variabile oggetto Selection.
Disattivare l'opzione Overtype se attivata.
Verificare se la selezione corrente si trova in corrispondenza del punto di inserimento.
In questo caso, il codice inserisce una frase usando TypeText, quindi un segno di paragrafo usando il metodo TypeParagraph .
Il codice nel blocco ElseIf verifica che la selezione sia una selezione normale. In questo caso, un altro blocco If verifica che l'opzione ReplaceSelection sia attivata. In questo caso, il codice usa 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.
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(); }
Se la selezione non è un punto di inserimento o un blocco di testo selezionato, il codice nel blocco Else non esegue alcuna operazione.
È anche possibile usare il TypeBackspace metodo dell'oggetto Selection , che simula la funzionalità del tasto Backspace sulla tastiera. Tuttavia, per l'inserimento e la modifica del testo, l'oggetto Range offre un maggiore controllo.
L'esempio seguente mostra il codice completo. Per usare questo esempio, eseguire il codice dalla classe
ThisDocument
oThisAddIn
nel progetto.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; }