Используйте методы Insert Before или Insert After объектов Range или Selection для вставки текста в определенном месте документа, не затрагивая при этом существующий текст. Эти методы позволяют вставить новый текст непосредственно перед или после указанного объекта соответственно. Word включает вставленный текст в выделенную область или диапазон.
При использовании любого из методов единственным аргументом является текст, который вы хотите вставить. Приведенный ниже фрагмент кода вставляет новый абзац, содержащий слова Dairy Entry в начало выделенной области (обратите внимание на использование такой константы VBA, как vbCr, для добавления знака абзаца). После этого в конец добавляется новый абзац, который начинается с текущей даты. Если вы выделили целый абзац до выполнения этого кода, абзац, содержащий текущую дату, появится после знака абзаца в выделенной области.
Dim strInsert Text As String
Selection.Insert Before "Dairy Entry" & vbCr
strInsert Text = "Today" & Chr(146) & "s date is"
strInsertText = _
strInsertTex't & Format (Now, "Long date") & ". "
Selection.InsertAfter strInsertText & vbCr
Этот пример показывает, каким образом вставленный текст может содержать строковые переменные функции VBA, возвращающие строковые значения, а также литералы и константы VBA. Подробные сведения о форматировании и изменении строковых значений с помощью VBA изложены в главе 11.
Простейший способ добавить новый пустой абзац в документ - вставить знак абзаца (представленный константой vbCr) с помощью свойства Text или методов Insert Before или Insert After. Метод Add, применяемый к коллекциям Paragraphs, работает, но не очень удобен в применении.
Используйте его в том случае, если вам необходимо разместить новый абзац в диапазоне или выделенной области, а не в их начале или конце.
Несколько свойств диапазона или выделенной области - это ваш ключ к изменению внешнего вида текста. Все эти свойства соответствуют командам из меню Формат программы Word и функционируют следующим образом.
Это свойство
|
Предоставляет доступ к...
|
Font
|
Соответствующие свойства каждого аспекта форматирования символов, такие как Name, Size и Bold. По некоторым причинам вы можете получать непосредственный доступ к самым важным свойствам форматирования объектов Range, не обращаясь к свойству Font, но только не при работе с выделенными областями
|
Paragrap
|
Соответствующие свойства каждого аспекта форматирования абзацев, такие как hFormat LeftIndent или LineSpacing
|
Style
|
Имя стиля символа или абзаца, примененного к диапазону или выделенной области
|
Borders
|
Границы вокруг текста
|
Tabstops
|
Типы И расположения точек табуляции. Вы можете получить доступ к этим свойствам только с помощью объектов Paragraph, а не непосредственно через диапазоны или выделенные области
|
Поиск и замена текста с помощью VBA в Word
Хотя это звучит и несколько необычно, но Find - это объект Word VBA. Объекты Find принадлежат диапазонам и выделенным областям. Для обнаружения или форматирования текста с помощью объекта Find вам потребуется выполнить следующие действия.
1. Получите доступ к объекту Find для определенного диапазона или выделенной области. Если вам необходимо просмотреть целый документ, используйте свойство Content объекта Document для получения доступа к соответствующему диапазону, как показано ниже:
ActiveDocument.Content.Find
2. Определить свойства объекта Find в соответствии с тем, что же вы ищете и как именно вы хотите проводить поиск.
3. Вызвать метод Execute объекта Find. Соответствующий пример приведен ниже:
With OpenRange.Find
.Clear Formatting
.Text = "pogosticks"
.Execute
End With
Для свойств, значения которых явно вы задать не можете, объект Find выбирает параметры, использованные последними или те, которые в настоящий момент заданы в диалоговом окне Найти и заменить программы Word. Именно по этой причине вам всегда следует включать метод Clear Formatting перед началом нового поиска- он позволяет убрать все ранее определенные для проведения поиска параметры форматирования.
Работа с найденным текстом
Основная работа метода Execute - обнаружение первого экземпляра искомого текста или форматирования в указанном диапазоне или выделенной области. После выполнения этого метода вам прежде всего следует определить, было ли найдено то, что вы ищете. Для подобной проверки используйте свойство Found объекта Find совместно с инструкцией If...Then, как показано на примере следующей заготовки программного кода:
Читать дальше