- •12. Объектная модель Word
- •12.1. Работа с документами
- •12.1.1. Создание нового документа
- •12.1.2. Открытие существующего документа
- •12.1.3. Закрытие документа
- •12.1.4. Сохранение документа
- •12.2. Работа с текстом в документах
- •12.2.1. Определение и выделение диапазонов в документах
- •12.2.2. Получение значений начала и завершения диапазона
- •12.2.3. Вставка текста в документы
- •12.2.4. Форматирование текста в документах
- •12.2.5. Поиск и замена текста в документах
- •12.2.6. Счетчик знаков в документе
- •12.3. Работа с таблицами
- •12.3.1. Создание таблиц в Word
- •12.3.2. Заполнение таблиц в свойствах документа
- •12.3.3. Добавление строк и столбцов в таблицы
- •12.3.4. Добавление текста в ячейку таблицы и его форматирование
12.2.1. Определение и выделение диапазонов в документах
1. Определение диапазона.
Добавление диапазона в активный документ в проекте на уровне документа:
Dim rng As Word.Range = Me.Range(Start:=0, End:=7)
rng.Select()
Добавление диапазона в активный документ в проекте на уровне приложения:
Dim rng As Word.Range = _
Me.Application.ActiveDocument.Range(Start:=0, End:=7)
rng.Select()
2. Выделение всего документа.
Выделение всего документа в проекте на уровне документа:
Me.Range.Select()
или
Me.Content.Select()
Выделение всего активного документа в проекте на уровне приложения:
Me.Application.ActiveDocument.Range.Select()
или
Me.Application.ActiveDocument.Content.Select()
3. Выделение предложения.
Выделение предложения в активном документе:
Dim s2 As Word.Range = Me.Sentences(2)
s2.Select()
или
Dim s2 As Word.Range = _
Me.Application.ActiveDocument.Sentences(2)
s2.Select()
4. Выделение предложения установкой начального и конечного значений для диапазона.
Dim rng As Word.Range 'Создание переменной диапазона
...
'Проверка наличия в документе хотя бы двух предложений
If Me.Sentences.Count >= 2 Then
Dim startLocation As Object = Me.Sentences(2).Start
Dim endLocation As Object = Me.Sentences(2).End
'Задание аргументов Start и End для диапазона
rng = Me.Range(Start:=startLocation, End:=endLocation)
rng.Select() 'Выделение диапазона
End If
или
Dim rng As Word.Range 'Создание переменной диапазона
...
Dim document As Word.Document = Me.Application.ActiveDocument
'Проверка наличия в документе хотя бы двух предложений
If document.Sentences.Count >= 2 Then
Dim startLocation As Object = document.Sentences(2).Start
Dim endLocation As Object = document.Sentences(2).End
'Задание аргументов Start и End для диапазона
rng = document.Range(Start:=startLocation, End:=endLocation)
rng.Select() 'Выделение диапазона
End If
12.2.2. Получение значений начала и завершения диапазона
Dim rng As Word.Range = Me.Sentences(2)
Dim startPosition As String = rng.Start.ToString()
Dim endPosition As String = rng.End.ToString()
...
MessageBox.Show("Начало диапазона: " & startPosition & _
", Конец: " & endPosition)
или
Dim rng As Word.Range = _
Me.Application.ActiveDocument.Sentences(2)
Dim startPosition As String = rng.Start.ToString()
Dim endPosition As String = rng.End.ToString()
...
MessageBox.Show("Начало диапазона: " & startPosition & _
", Конец: " & endPosition)
12.2.3. Вставка текста в документы
1. Вставка текста в диапазон.
Dim rng As Word.Range = Me.Range(Start:=0, End:=0)
'или Dim rng As Word.Range = _
Me.Application.ActiveDocument.Range(Start:=0, End:=0)
rng.Text = "Новый текст"
rng.Select()
2. Замена текста в диапазоне.
3. Вставка текста с помощью метода TypeText.
Friend Sub SelectionInsertText()
'Объявление объектной переменной Selection
Dim currentSelection As Word.Selection = _
Application.Selection
'Сохранение текущего состояния параметра Overtype выделения
Dim userOvertype As Boolean = Application.Options.Overtype
'Отключение параметра Overtype (если он включен)
If Application.Options.Overtype Then
Application.Options.Overtype = False
End If
With currentSelection
'Проверка принадлежности точки вставки текущему объекту
'выделения
If .Type = Word.WdSelectionType.wdSelectionIP Then
'Вставка предложения
.TypeText("Вставка в точке вставки. ")
.TypeParagraph() 'Вставка знака абзаца
'Проверка, является ли текущий объект выделения обычным
ElseIf .Type = Word.WdSelectionType.wdSelectionNormal Then
'Проверка, включен ли параметр ReplaceSelection
If Application.Options.ReplaceSelection Then
'Свертывание выделения к точке вставки (в начало
'фрагмента текста) с помощью метода Collapse
'объекта выделения
.Collapse( _
Direction:=Word.WdCollapseDirection.wdCollapseStart)
End If
'Вставка текста
.TypeText("Вставка перед блоком текста. ")
.TypeParagraph() 'Вставка знака абзаца
'Если объект выделения не содержит точку вставки или
'фрагмент выделенного текста, в блоке Else
'не выполняется никаких действий
Else
'Ничего не делается
End If
End With
'Восстановление состояния параметра Overtype выделения
Application.Options.Overtype = userOvertype
End Sub