Читаем VBA для чайников полностью

Приведенный выше пример иллюстрирует, как объект Range содержит другие объекты, в свою очередь содержащие диапазоны. Инструкция в третьей строке обращается к дипазону, соответствующему первому предложению в исходном диапазоне, после чего отображает его полужирным. Также обратите внимание на то, что вы не можете применить форматирование непосредственно к объектам, таким как слова, предложения или абзацы; для того чтобы это сделать, вам следует использовать их свойства Range.

Если вы планируете использовать диапазон в нескольких инструкциях, которые не следуют одна за другой, вам придется присвоить диапазон переменной. Это позволит вам быстрее составить код программы, а также в конечном итоге ускорить ее выполнение.

Объекты Selection также обладают свойством Range. Это значительно упрощает использование свойств и методов, принадлежащих объектам Range существующих выделенных областей. Приведенный ниже пример присваивает диапазон выделенной области переменной, перемещает выделенную область, после чего преобразует текст прописными буквами:

Set deRange = Selection.Range

Selection.Move Unit := wdParagraph, Count := 3

DeRange.Case = wdLowerCase

<p>Определение диапазонов с помощью метода Range</p>

Если существующие объекты не содержат текст, с которым вы хотите работать, создайте собственный объект Range. В любом открытом документе вы сможете определить столько объектов Range, сколько вам нужно. При этом используется метод Range документа, который требует от вас указания начальной и конечной точек диапазона в терминах расположения символа в документе. Например, ознакомьтесь со следующим примером:

ActiveDocument.Range(Start:= 10, End:=2 0)

Приведенное выше выражение представляет собой объектную ссылку на диапазон, который начинается с 11-го символа и заканчивается 20-м символом. Значение расположения символа на самом деле означает место слева от данного символа. Например, значение, равное 0, соответствует первому символу в документе, а значение 10 указывает на точку между 10-м и 31-м символами. Word считает все символы в документе, включая скрытые и непечатаемые знаки.

Для создания диапазона, который станет всего лишь местом расположения и не содержит никакого текста, присвойте начальному и конечному значениям, определяющим диапазон, одно и то же число. Для включения в объект Range всего документа используйте метод Range этого документа без каких-либо аргументов или же используйте свойство Content документа.

Объект Range создать совсем несложно (если вам известны положения начального и конечного символов, которые вы решили включить в диапазон).

Проблема возникает в том случае, когда вам необходимо работать с произвольным количеством символов в произвольном месте документа. Чаще всего вам необходимо работать с текстом в определенной части документа. Вы можете начать диапазон с существующей закладки, с начала выделенной области или с определенного слова или фразы, о наличии которых в документе вам точно известно.

Для определения диапазона, базирующегося на одном из подобных критериев, используйте свойства Start или End объекта Selection, Range или Bookmark, чтобы определить месторасположение в документе интересующего вас символа. Если вам необходимо создать состоящий из десяти символов диапазон, который будет начинаться с вкладки Forget MeNot, вам пригодится следующая инструкция;

With ActiveDocument

Set myEkMark = .Bookmarks("ForgretMeNot")

Set homeOnTheRange = _

.Fange( Start := myBkMark, End := myBkMark + 10)

End With

Ниже приведен еще один пример, иллюстрирующий использование свойства Range для поиска абзаца, определения в нем некоторого слова, а также создания нового диапазона, начинающегося с этого слова. В данном случае аргумент End опущен, поэтому диапазон начинается с указанного слова и продолжается до окончания документа:

With ActiveDocument

Set firstWord = .Paragraphs(160).Range.Words(3)

Set RangeTop = .Range( Start := first Word.Start )

End With

В разделе "Поиск и замена текста с помощью VBA в Word", дальше в настоящей главе, я покажу, что использование ключевого слова Find совместно с диапазоном или выделенной областью определяет объект, который будет содержать только найденный текст. После того как инструкция Find найдет в диапазоне или выделенной области фразу, свойства Start и End того же диапазона или выделенной области теперь будут указывать на начало и конец найденного текста.

<p>Работа с текстом в Word VBA</p>
Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных