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

Подробно об использовании этих объектов мы поговорим в разделе "Работа с текстом в Word VBA" дальше в настоящей главе.

Содержимое выделенной области может быть фрагментом текста, таблицей, текстовым окном, изображением или чем-нибудь другим, что можно выделить с помощью мыши и клавиатуры. Запомните: если ничего не выделено, объект Selection представляет текущее расположение точки вставки.

Хотя каждая область окна содержит выделение, вам необходимо только явно обратиться к целевому окну, если интересующее вас выделение не находится в главной области активного окна. Для работы с выделенной частью в главной области активного окна вам следует использовать объект Selection. Например, вы можете использовать приведенную ниже инструкцию для замены выделения в области активного окна текстом, заключенным в кавычки:

Selection.Text = "У моей собаки есть блохи"

Если вам необходимо работать с выделенной областью в одном из неактивных окон, вы должны полностью указать имя окна: documents("Songs.doc").Windows(2).Selection.Text = _

"Моя возлюбленная отдыхает на берегу океана"

Поскольку объект Selection может представлять содержимое различных типов, всегда лучше всего сначала проверить, данные какого вида были выделены, прежде чем с ними что-то делать. В противном случае вы рискуете получить неожиданные результаты или даже сообщения об ошибках. Для поиска подобных сведений используйте свойство Туре объекта Selection. Например, приведенный ниже фрагмент кода проверяет, является ли выделенная область обычным текстом, прежде чем вырезать ее в буфер обмена:

With Selection

If -Type = wdSelecti onNormal Then

.Cut

End If

Вы можете использовать при подобных проверках константы, перечисленные ниже.

Константа

Что выделено

wdNoSelection

Ничего не выбрано

wdSе1еctionB1оск

Вертикальный блок текста

wdSelectionColumn

Столбец в таблице

wdSelectionFrame

Рамка

wdSelectionInlineShape

Графическое изображение в тексте

wdSelесtiоnIP

Только точка вставки

wdSelectionNormal

Обычное выделение фрагмента текста

wdSelectionRow

Строка таблицы

wdSelectionShape

Изображение, не помещенное в текст

<p>Знакомство с объектами Range</p>

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

Вы можете определить объекты Range в программном коде одним из двух следующих способов:

* работая с диапазонами с помощью свойства Range;

* определив диапазоны с помощью метода Range объекта Document.

<p>Использование свойства Range</p>

Открытый документ Word уже содержит объекты Range, соответствующие многим его элементам. Каждый абзац, а также таблица, отдельная ячейка таблицы, комментарий или нижний колонтитул (и это далеко не полный список) определяют диапазоны. Вы можете считать, что все эти диапазоны существуют в некотором виртуальном мире, пока не вы не обратитесь к ним с помощью свойства Range соответствующего объекта. Например, для определения объекта Range, соответствующего первому абзацу активного документа, вам следует использовать объектную ссылку следующего вида.

ActiveDocumep.t. Paragraphs (1) . Range

Поскольку подобные стандартные диапазоны уже существуют в Word, вы можете использовать объектные ссылки на них напрямую, обходясь без каких-либо переменных. Это особенно хорошо подходит для тех ситуаций, когда вам необходим один конкретный диапазон для одной операции. Например, приведенная ниже инструкция копирует вторую таблицу в документе в буфер обмена, используя метод Сору объекта Range:

ActiveDocument.Tabl es[2) .Range.Copy

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

With ActiveDocument.Section(3).Range

.Sort Sort Order := wdSortOrderAscending

.Sentences ( 1).Range.Bold = True

End With

Перейти на страницу:

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

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

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

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

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

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

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

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

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