ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.01.2026

Просмотров: 300

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

12.2.4. Форматирование текста в документах

Private Sub RangeFormat()

'Установка диапазона на первый абзац

Dim rng As Word.Range = Me.Paragraphs(1).Range

'или

'Dim document As Word.Document = Me.Application.ActiveDocument

'Dim rng As Word.Range = document.Paragraphs(1).Range

'Форматирование диапазона

rng.Font.Name = "Arial" 'Шрифт

rng.Font.Size = 14 'Размер шрифта

rng.ParagraphFormat.Alignment = _

Word.WdParagraphAlignment.wdAlignParagraphCenter

rng.Select()

MessageBox.Show("Форматированный диапазон")

'Отмена трех предыдущих действий

Me.Undo(Times:=3) 'или document.Undo(Times:=3)

rng.Select()

MessageBox.Show("Отмена трех действий")

'Применение стиля Normal Indent

rng.Style = "Normal Indent"

rng.Select()

MessageBox.Show("Стиль Normal Indent применен")

'Отмена одного действия

Me.Undo() 'или document.Undo()

rng.Select()

MessageBox.Show("Отмена одного действия ")

End Sub

12.2.5. Поиск и замена текста в документах

1. Использование объектаSelection для поиска текста в документах.

Private Sub SelectionFind()

'Присваивание переменной строки поиска

Dim findText As String = "найдите меня"

'Снятие форматирования, установленного при выполнении

'предыдущего поиска

Application.Selection.Find.ClearFormatting()

'Поиск и отображение его результатов в окне сообщения

If Application.Selection.Find.Execute(findText) = True Then

MessageBox.Show("Текст найден.")

Else

MessageBox.Show("Текст не найден.")

End If

End Sub

2. Использование объекта Range для поиска текста в документах.

Private Sub RangeFind()

Dim findText As String = "найдите меня"

'или Dim findText As Object = "найдите меня"

'Определение объекта Range,

'состоящего из второго абзаца документа

Dim rng As Word.Range = Me.Paragraphs(2).Range

'или Dim rng As Word.Range = _

' Me.Application.ActiveDocument.Paragraphs(2).Range

'Очистка всех параметров форматирования

'(с помощью свойства FindобъектаRange)

rng.Find.ClearFormatting()

'Поиск строки "найдите меня" и отображение результатов

'в окне сообщения

If rng.Find.Execute(findText) Then

MessageBox.Show("Текст найден.")

Else

MessageBox.Show("Текст не найден.")

End If

'Выделение абзаца Range, чтобы сделать его видимым

rng.Select()

EndSub

3. Поиск и замена текста в документах.


Private Sub SearchReplace()

Dim FindObject As Word.Find = Application.Selection.Find

With FindObject

.ClearFormatting()

.Text = "найдите меня"

.Replacement.ClearFormatting()

.Replacement.Text = "Найден"

.Execute(Replace:=Word.WdReplace.wdReplaceAll)

End With

End Sub

4. Установка параметров поиска в документах.

– Установка параметров поиска с помощью объекта Find.

With Application.Selection.Find

.ClearFormatting()

.Forward = True

.Wrap = Word.WdFindWrap.wdFindContinue

.Text = "найдите меня"

.Execute()

End With

– Установка параметров поиска с помощью аргументов метода Execute.

With Application.Selection.Find

.ClearFormatting()

.Execute(FindText:="найдите меня", Forward:=True, _

Wrap:=Word.WdFindWrap.wdFindContinue)

End With

5. Просмотр найденных элементов в документе.

Private Sub FindLoop()

Dim intFound As Integer = 0

'Объявление объекта Range

Dim rng As Word.Range = Me.Content

'или Dim rng As Word.Range = _

' Me.Application.ActiveDocument.Content

'Использование свойства Found в цикле

'для поиска всех вхождений строки

rng.Find.ClearFormatting()

rng.Find.Forward = True

rng.Find.Text = "найдите меня"

rng.Find.Execute()

Do While rng.Find.Found = True

'Автоувеличение при каждом нахождении искомой строки

intFound += 1

rng.Find.Execute()

Loop

'Отображение количества появлений искомой строки

'в окне сообщения

MessageBox.Show("Strings found: " & intFound.ToString())

End Sub


12.2.6. Счетчик знаков в документе

'Выделение всего документа

Dim rng As Word.Range = Me.Range(0, Me.Characters.Count)

rng.Select()

'Отображение количества знаков в документе в окне сообщения

MessageBox.Show("Количество символов: " & _

Me.Characters.Count.ToString())

или

'Выделение всего документа

Dim rng As Word.Range = Me.Application.ActiveDocument.Range( _

0, Me.Application.ActiveDocument.Characters.Count)

rng.Select()

'Отображение количества знаков в документе в окне сообщения

MessageBox.Show("Количество символов: " & _

Me.Application.ActiveDocument.Characters.Count.ToString())

12.3. Работа с таблицами

(http://msdn.microsoft.com/ru-ru/library/bb157878.aspx)

Таблица 6. Основные методы и свойства класса Tables(http://msdn.microsoft.com/ru-ru/library/microsoft.office.interop.word.Tables_members.aspx)

Name

Description

Методы

Add

Возвращает объект Table, представляющий добавленную к документу новую пустую таблицу

Свойства

Application

Возвращает объект Application, представляющий приложение Microsoft Word

Count

Возвращает количество элементов в указанной коллекции

Item

Возвращает индивидуальный объект в коллекции

NestingLevel

Возвращает уровень вложенности указанных таблиц

Parent

Возвращает объект, представляющий собой родительский объект для указанного объекта

12.3.1. Создание таблиц в Word

1. Добавление простой таблицы в документ.

Dim tableLocation As Word.Range = Me.Range(Start:=0, End:=0)

Me.Tables.Add(Range:=tableLocation, NumRows:=3, NumColumns:=4)

или

Dim tableLocation As Word.Range = _

Me.Application.ActiveDocument.Range(Start:=0, End:=0)

Me.Application.ActiveDocument.Tables.Add( _

Range:=tableLocation,NumRows:=3,NumColumns:=4)

2. Ссылка на таблицу по номеру элемента.

Dim newTable As Word.Table = Me.Tables.Item(1)

или

Dim newTable As Word.Table = _

Me.Application.ActiveDocument.Tables.Item(1)

3. Применение стиля к таблице.


Me.Tables.Item(1).Range.Font.Size = 8

Me.Tables.Item(1).Style = "Table Grid 8"

или

Me.Application.ActiveDocument.Tables.Item(1).Range.Font.Size = 8

Me.Application.ActiveDocument.Tables.Item(1).Style = "Table Grid 8"

12.3.2. Заполнение таблиц в свойствах документа

Private Sub CreateDocumentPropertyTable()

'Установка диапазона в верхней части документа

Dim rng As Word.Range = Me.Range(Start:=0, End:=0)

'или Dim rng As Word.Range = _

' Me.Application.ActiveDocument.Range(Start:=0, End:=0)

'Вставка заголовка в таблицу и указание знаков абзаца

With rng

.InsertBefore("Document Statistics")

.Font.Name = "Verdana"

.Font.Size = 16

.InsertParagraphAfter()

.InsertParagraphAfter()

.SetRange(rng.End, rng.End)

EndWith

'Добавление таблицы в диапазон

rng.Tables.Add(Range:=Me.Paragraphs.Item(2).Range, _

NumRows:=3, NumColumns:=2)

'или rng.Tables.Add( _

' Range:=Me.Application.ActiveDocument.Paragraphs.Item(2).Range, _

' NumRows:=3, NumColumns:=2)

'Выбор формата и стиля таблицы

With Me.Tables.Item(1)

'или With Me.Application.ActiveDocument.Tables.Item(1)

.Range.Font.Size = 12

.Columns.DistributeWidth()

.Style = "Table Professional"

End With

'Вставка свойств документа в ячейки

With Me.Tables.Item(1)

'или With Me.Application.ActiveDocument.Tables.Item(1)

.Cell(1, 1).Range.Text = "Свойство документа"

.Cell(1, 2).Range.Text = "Значение"

.Cell(2, 1).Range.Text = "Тема"

.Cell(2, 2).Range.Text = _

CType(Me.BuiltInDocumentProperties, _

Office.DocumentProperties) _

(Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()

'или .Cell(2, 2).Range.Text = CType( _

' Me.Application.ActiveDocument.BuiltInDocumentProperties, _

' Office.DocumentProperties) _

' (Word.WdBuiltInProperty.wdPropertySubject).Value.ToString()

.Cell(3, 1).Range.Text = "Автор"

.Cell(3, 2).Range.Text = CType(Me.BuiltInDocumentProperties, _

Office.DocumentProperties) _

(Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()

'или .Cell(3, 2).Range.Text = CType( _

' Me.Application.ActiveDocument.BuiltInDocumentProperties, _

' Office.DocumentProperties) _

' (Word.WdBuiltInProperty.wdPropertyAuthor).Value.ToString()

End With

End Sub


12.3.3. Добавление строк и столбцов в таблицы

1. Добавление строки в таблицу.

Me.Tables.Item(1).Rows.Add()

или

Me.Application.ActiveDocument.Tables.Item(1).Rows.Add()

2. Добавление столбца в таблицу.

Me.Tables.Item(1).Columns.Add(BeforeColumn:=Me.Tables.Item(1).Columns(1))

Me.Tables.Item(1).Columns.DistributeWidth()

или

Me.Application.ActiveDocument.Tables.Item(1).Columns.Add( _

BeforeColumn:=Me.Application.ActiveDocument.Tables.Item(1).Columns(1))

Me.Application.ActiveDocument.Tables.Item(1).Columns.DistributeWidth()

12.3.4. Добавление текста в ячейку таблицы и его форматирование

With Me.Tables.Item(1).Cell(1, 1).Range

'или With Me.Application.ActiveDocument.Tables.Item(1).Cell(1, 1).Range

.Text = "Имя"

.ParagraphFormat.Alignment = _

Word.WdParagraphAlignment.wdAlignParagraphRight

End With

3. Ken Getz. Walkthrough: Creating a Table in Word.– Microsoft, September 2003.– http://msdn.microsoft.com/ru-ru/library/aa192483.aspx .

4. Ken Getz. Understanding the Word Object Model from a Visual Studio 2005 Developer's Perspective.– Microsoft, December 2005.– http://msdn.microsoft.com/ru-ru/library/aa537164.aspx .

5. Paul D. Sheriff, Ken Getz. Working with MDI Applications and Creating Menus.– Microsoft, January 2002.– http://msdn.microsoft.com/ru-ru/library/ms973874.aspx .

27