Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Como inserir texto em documentos do Word programaticamente

 

Há três maneiras principais de inserir texto em documentos do Microsoft Office Word:

System_CAPS_noteObservação

Você também pode inserir texto em controles de conteúdo e indicadores. Para obter mais informações, consulteControles de conteúdoeControle de indicador.

Aplica-se a: as informações neste tópico se aplicam a projetos no nível de documento e a projetos de suplemento do VSTO para Word. Para obter mais informações, consulte Recursos disponibilizados pelo aplicativo do Office e pelo tipo de projeto.

Use oP:Microsoft.Office.Interop.Word.Range.Textpropriedade de umaRangeobjeto para inserir texto em um documento.

Para inserir texto em um intervalo

  1. Especifique um intervalo no início de um documento e inserir o textonovo texto.

    O exemplo de código a seguir pode ser usado em uma personalização em nível de documento.

    object start = 0; 
    object end = 0; 
    
    Word.Range rng = this.Range(ref start, ref end); 
    rng.Text = "New Text"; 
    

    O exemplo de código a seguir pode ser usado em um suplemento do VSTO. Esse código usa o documento ativo.

    Word.Range rng = this.Application.ActiveDocument.Range(0, 0);
    rng.Text = "New Text";
    
  2. Selecione oRangeobjeto, que foi expandida de um caractere para o comprimento do texto inserido.

    rng.Select();
    

Se o intervalo especificado contiver texto, todo o texto do intervalo é substituído pelo texto inserido.

Para substituir o texto em um intervalo

  1. Criar umRangeobjeto consiste em 12 primeiros caracteres do documento.

    O exemplo de código a seguir pode ser usado em uma personalização em nível de documento.

    object start = 0; 
    object end = 12; 
    
    Word.Range rng = this.Range(ref start, ref end); 
    

    O exemplo de código a seguir pode ser usado em um suplemento do VSTO. Esse código usa o documento ativo.

    Word.Range rng = this.Application.ActiveDocument.Range(0, 12);
    
  2. Substitua esses caracteres com a cadeia de caracteresnovo texto.

    rng.Text = "New Text"; 
    
  3. Selecione o intervalo.

    rng.Select();
    

OM:Microsoft.Office.Interop.Word.Selection.TypeText(System.String)método insere texto na seleção. M:Microsoft.Office.Interop.Word.Selection.TypeText(System.String) se comporta de maneira diferente dependendo das opções definidas no computador do usuário. O código no procedimento a seguir declara umSelectionvariável de objeto e desativa oOvertypeopção se ele está ligado. Se oOvertypeopção é ativada e qualquer texto ao lado do cursor será substituído.

Para inserir texto usando o método TypeText

  1. Declarar umaSelectionvariável de objeto.

    Word.Selection currentSelection = Application.Selection; 
    
  2. Desativar oOvertypeopção se ele está ligado.

    if (Application.Options.Overtype) 
    { 
        Application.Options.Overtype = false; 
    } 
    
  3. Teste para ver se a seleção atual é um ponto de inserção.

    Se for, o código insere uma sentença usandoM:Microsoft.Office.Interop.Word.Selection.TypeText(System.String)e, em seguida, um parágrafo marca usando oM:Microsoft.Office.Interop.Word.Selection.TypeParagraphmétodo.

    // Test to see if selection is an insertion point.
    if (currentSelection.Type == Word.WdSelectionType.wdSelectionIP) 
    { 
        currentSelection.TypeText("Inserting at insertion point. ");
        currentSelection.TypeParagraph(); 
    } 
    
  4. O código deElseIfBloquear testa para ver se a seleção é uma seleção normal. Se, depois outroIfBloquear testa para ver se oReplaceSelectionopção está ativada. Se for, o código usa oM:Microsoft.Office.Interop.Word.Selection.Collapse(System.Object@)método de seleção para recolher a seleção para um ponto de inserção no início do bloco de texto selecionado. Insira o texto e uma marca de parágrafo.

    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 a seleção não é um ponto de inserção ou um bloco de texto selecionado, em seguida, o código deElsebloco não faz nada.

    else
    {
        // Do nothing.
    }
    

Você também pode usar oM:Microsoft.Office.Interop.Word.Selection.TypeBackspacemétodo deSelectionobjeto, que imita a funcionalidade da tecla BACKSPACE no teclado. No entanto, quando se trata de inserção e manipulação de texto, oRangeobjeto oferece mais controle.

O exemplo a seguir mostra o código completo. Para usar este exemplo, execute o código a partir deThisDocumentouThisAddInclasse em seu projeto.

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;
}
Mostrar: