Inserir texto programaticamente em documentos do Word
Há três maneiras principais de inserir texto em documentos do Microsoft Office Word:
Inserir texto em um intervalo.
Substitua o texto em um intervalo por um novo texto.
Use o TypeText método de um Selection objeto para inserir texto no cursor ou na seleção.
Observação
Você também pode inserir texto em controles de conteúdo e marcadores. Para obter mais informações, consulte Controles de conteúdo e Controle de marcador.
Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de suplemento VSTO para Word. Para obter mais informações, consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.
Observação
Interessado em desenvolver soluções que estendam a experiência do Office em várias plataformas? Confira o novo modelo de Suplementos do Office. Os Suplementos do Office têm um espaço pequeno em comparação com os suplementos e soluções VSTO, e você pode criá-los usando praticamente qualquer tecnologia de programação da Web, como HTML5, JavaScript, CSS3 e XML.
Inserir texto em um intervalo
Use a Text propriedade de um objeto para inserir texto em um Range documento.
Para inserir texto em um intervalo
Especifique um intervalo no início de um documento e insira o texto Novo 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 VSTO. Esse código usa o documento ativo.
Selecione o objeto, que foi expandido de um caractere para o Range comprimento do texto inserido.
Substituir texto em um intervalo
Se o intervalo especificado contiver texto, todo o texto no intervalo será substituído pelo texto inserido.
Para substituir texto em um intervalo
Crie um Range objeto que consiste nos primeiros 12 caracteres do documento.
O exemplo de código a seguir pode ser usado em uma personalização em nível de documento.
O exemplo de código a seguir pode ser usado em um suplemento VSTO. Esse código usa o documento ativo.
Substitua esses caracteres pela cadeia de caracteres Novo Texto.
Selecione o intervalo.
Inserir texto usando TypeText
O TypeText método insere texto na seleção. TypeText comporta-se de forma diferente dependendo das opções definidas no computador do usuário. O código no procedimento a seguir declara uma variável de Selection objeto e desativa a opção Overtype se ela estiver ativada. Se a opção Overtype estiver ativada, qualquer texto ao lado do cursor será substituído.
Para inserir texto usando o método TypeText
Declare uma variável do objeto Selection.
Desative a opção Overtype se ela estiver ativada.
Teste para ver se a seleção atual é um ponto de inserção.
Se estiver, o código insere uma frase usando o e, em seguida, uma marca de parágrafo usando TypeTexto TypeParagraph método.
O código no bloco ElseIf testa para ver se a seleção é uma seleção normal. Se estiver, outro bloco If testa para ver se a opção ReplaceSelection está ativada. Se for, o código usa o Collapse método da 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(); }
Se a seleção não for um ponto de inserção ou um bloco de texto selecionado, o código no bloco Else não fará nada.
Você também pode usar o TypeBackspace Selection método do objeto, que imita a funcionalidade da tecla Backspace no teclado. No entanto, quando se trata de inserir e manipular texto, o Range objeto oferece mais controle.
O exemplo a seguir mostra todo o código. Para usar este exemplo, execute o
ThisDocument
código da classe ouThisAddIn
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; }