Практическое руководство. Вставка текста в документы Word
Обновлен: Ноябрь 2007
Применение |
---|
Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office. Тип проекта
Версия Microsoft Office
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
Предусмотрено три основных способа вставки текста в документы Microsoft Office Word:
Вставка текста в диапазон.
Замена текста в диапазоне новым.
Вставка текста в текущем положении курсора или объекте выделения с помощью метода TypeText объекта Selection.
Примечание.
Также можно вставить текст в элементы управления содержимым и закладки. Дополнительные сведения см. в разделах Элементы управления содержимым и Элементы управления Bookmark.
Вставка текста в диапазон
Для вставки текста в документ используйте свойство Text объекта Range.
Вставка текста в диапазон
Укажите диапазон в начале документа и вставьте текст Новый текст.
Приведенный ниже пример кода можно использовать в настройке на уровне документа.
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";
Приведенный ниже пример кода можно использовать в надстройке уровня приложения. В этом коде используется активный документ.
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";
Выберите объект Range, имеющий длину от одного знака до длины вставляемого текста.
rng.Select()
rng.Select();
Замена текста в диапазоне
Весь текст, содержащийся в заданном диапазоне, заменяется вставляемым текстом.
Замена текста в диапазоне
Создайте объект Range, содержащий первые 12 знаков документа.
Приведенный ниже пример кода можно использовать в настройке на уровне документа.
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);
Приведенный ниже пример кода можно использовать в надстройке уровня приложения. В этом коде используется активный документ.
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);
Замените эти знаки строкой Новый текст.
rng.Text = " New Text "
rng.Text = "New Text";
Выделите диапазон.
rng.Select()
rng.Select();
Вставка текста с помощью метода TypeText
Метод TypeText предназначен для вставки текста в объект выделения. Действие метода TypeText определяется установленными на компьютере пользователя параметрами. В коде следующей процедуры объявляется объектная переменная Selection и отключается параметр Overtype (если он включен). Если параметр Overtype включен, следующий за позицией курсора знак перезаписывается.
Вставка текста с помощью метода TypeText
Объявите объектную переменную Selection.
Dim currentSelection As Word.Selection = Application.Selection
Word.Selection currentSelection = Application.Selection;
Отключите параметр Overtype (если он включен).
If Application.Options.Overtype Then Application.Options.Overtype = False End If
if (Application.Options.Overtype) { Application.Options.Overtype = false; }
Проверьте, принадлежит ли точка вставки текущему объекту выделения.
Если это так, выполняется вставка предложения с помощью метода TypeText и затем вставка знака абзаца с помощью метода 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(); }
В коде блока ElseIf проверяется, является ли текущий объект выделения обычным. Если это так, в следующем блоке If проверяется, включен ли параметр ReplaceSelection. Если это так, с помощью метода Collapse объекта выделения выполняется свертывание выделения к точке вставки, расположенной в начале фрагмента текста. Вставьте текст и знак абзаца.
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(); }
Если объект выделения не содержит точку вставки или фрагмент выделенного текста, в коде блока Else не выполняется никаких действий.
Else ' Do nothing. End If
else { // Do nothing. }
Также можно использовать метод TypeBackspace объекта Selection, который имитирует нажатие клавиши BACKSPACE. Однако при вставке текста и работе с ним объект Range предоставляет более широкие возможности управления.
Ниже приведен полный пример кода. Чтобы использовать этот пример, выполните код из класса ThisDocument или ThisAddIn в проекте.
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;
}
См. также
Задачи
Практическое руководство. Форматирование текста в документах
Практическое руководство. Определение и выделение диапазонов в документе
Практическое руководство. Расширение диапазонов в документах