Sdílet prostřednictvím


Vkládání textu do wordových dokumentů prostřednictvím kódu programu

Existují tři primární způsoby vložení textu do systém Microsoft Office wordových dokumentů:

  • Vloží text do oblasti.

  • Nahraďte text v oblasti novým textem.

  • TypeText Použijte metodu objektu Selection k vložení textu na kurzor nebo výběr.

Poznámka:

Text můžete také vložit do ovládacích prvků obsahu a záložek. Další informace najdete v tématu Ovládací prvky obsahu a ovládací prvek Záložka.

Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu a projekty doplňků VSTO pro Word. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.

Poznámka:

Zajímá vás vývoj řešení, která rozšiřují prostředí Office napříč několika platformami? Podívejte se na nový model doplňků pro Office. Doplňky pro Office mají v porovnání s doplňky a řešeními VSTO malé nároky a můžete je vytvářet pomocí téměř jakékoli webové programovací technologie, jako je HTML5, JavaScript, CSS3 a XML.

Vložení textu do oblasti

Text Vlastnost objektu Range slouží k vložení textu do dokumentu.

Vložení textu do oblasti

  1. Zadejte oblast na začátku dokumentu a vložte text Nový text.

    Následující příklad kódu lze použít v přizpůsobení na úrovni dokumentu.

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

    Následující příklad kódu lze použít v doplňku VSTO. Tento kód používá aktivní dokument.

    Word.Range rng = this.Application.ActiveDocument.Range(0, 0);
    rng.Text = "New Text";
    
  2. Range Vyberte objekt, který se rozbalil z jednoho znaku na délku vloženého textu.

    rng.Select();
    

Nahrazení textu v oblasti

Pokud zadaná oblast obsahuje text, nahradí se veškerý text v oblasti vloženým textem.

Nahrazení textu v oblasti

  1. Vytvořte Range objekt, který se skládá z prvních 12 znaků v dokumentu.

    Následující příklad kódu lze použít v přizpůsobení na úrovni dokumentu.

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

    Následující příklad kódu lze použít v doplňku VSTO. Tento kód používá aktivní dokument.

    Word.Range rng = this.Application.ActiveDocument.Range(0, 12);
    
  2. Nahraďte tyto znaky řetězcem Nový text.

    rng.Text = "New Text";
    
  3. Vyberte oblast.

    rng.Select();
    

Vložení textu pomocí typeTextu

Metoda TypeText vloží text do výběru. TypeText se chová jinak v závislosti na možnostech nastavených na počítači uživatele. Kód v následujícím postupu deklaruje proměnnou objektu Selection a vypne možnost Přepis, pokud je zapnutá. Pokud je aktivována možnost Přepisovat , přepíše se jakýkoli text vedle kurzoru.

Vložení textu pomocí metody TypeText

  1. Deklarujte proměnnou objektu Selection .

    Word.Selection currentSelection = Application.Selection;
    
  2. Pokud je zapnutá, vypněte možnost Přepisovat .

    if (Application.Options.Overtype) 
    { 
        Application.Options.Overtype = false; 
    }
    
  3. Otestujte, jestli je aktuální výběr kurzorem.

    Pokud ano, kód vloží větu pomocí TypeTexta pak značku odstavce pomocí TypeParagraph metody.

    // Test to see if selection is an insertion point.
    if (currentSelection.Type == Word.WdSelectionType.wdSelectionIP) 
    { 
        currentSelection.TypeText("Inserting at insertion point. ");
        currentSelection.TypeParagraph(); 
    }
    
  4. Kód v bloku ElseIf testuje, zda je výběr normálním výběrem. Pokud ano, pak další Pokud blokové testy zjistí, zda je možnost ReplaceSelection zapnutá. Pokud ano, kód použije Collapse metodu výběru ke sbalení výběru do kurzoru na začátku vybraného bloku textu. Vloží text a značku odstavce.

    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. Pokud výběr není kurzorem nebo blokem vybraného textu, kód v bloku Else nic neuvádí.

    else
    {
        // Do nothing.
    }
    

    Můžete také použít TypeBackspace metodu objektu Selection , která napodobuje funkce klávesy Backspace na klávesnici. Pokud ale jde o vkládání a manipulaci s textem, Range objekt vám nabízí větší kontrolu.

    Následující příklad ukazuje úplný kód. Pokud chcete tento příklad použít, spusťte kód z ThisDocument projektu nebo ThisAddIn třídy.

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