- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
VBA для чайников - Стив Каммингс
Шрифт:
Интервал:
Закладка:
Использование объекта View
Вспомогательный объект View определяет многие аспекты отображения окна или области. Объект View обладает следующими свойствами.
Свойство объекта View
Для чего предназначено
Туре
Соответствует выбору из меню Вид таких команд, как Обычный, Разметка страницы, Структура и т. д. Для изменения представления используйте в качестве значения свойства одну из следующих констант: wdMasterView,wdNormalView,wdOutlineView, wdPrintView, wdWebView или wdPrintPreview. Например, инструкция ActiveWindow. View. Type = wdPrintView переключает активное окно в режим предварительного просмотра
Full screen
Контролирует отображения окна в стандартном или полноэкранном варианте
Table Gridlines
Определяет отображение сетки таблицы
ShowAll, Show
Свойство ShowAll определяет отображение всех непечатаемых знаков, что соответствует флажку Все в группе Знаки форматирования на вкладке Вид диалогового окна Параметры. Вы можете включить или отключить отображение отдельных непечатаемых символов, а также других элементов, таких как выделение текста или границы, используя различные свойства, названия которых начинаются с Show, в частности ShowBookmarks или ShowHighlight
Масштабирование документа с помощью программного кода
Для управления параметрами увеличения документа вам необходимо немного углубиться в иерархию объектов, чтобы добраться до объекта Zoom, а затем изменить значение его свойства Percentage. Соответствующий пример приведен ниже:
ActiveWindow.View.Zoom.Percentage = 135
Если вы хотите задать новый масштаб документа для представления, которое в данный момент не используется, включите константу в качестве аргумента свойства View для этого представления, как показано ниже:
ActiveWindow.View.Zoom.Percentage = 75
Когда пользователь в следующий раз выберет соответствующее представление документа, последний сразу предстанет в указанном вами масштабе.
Кроме того, вы можете использовать свойство PageFit объекта Zoom для дублирования команд По ширине страницы или Страница целиком из раскрывающегося меню Масштаб на панели инструментов. При активной любой из этих настроек Word автоматически изменяет масштаб документа при изменении размеров окна, всегда сохраняя указанную вами пропорцию. Например, следующая инструкция эквивалентна команде По ширине страницы из раскрывающегося меню Масштаб на панели инструментов:
ActiveWindow.View.Zoom.PageFit = wdPageFitBestFit
Команда Страница целиком доступна только в режиме разметки страницы, но вы можете продублировать ее с помощью приведенного ниже кода:
Windows("Documentl").View.Zoom.PageFit = _ wdPageFitFullPage
Для отключения функции автоматического масштабирования присвойте свойству PageFit значение wdPageFit None.
В Word VBA объект Selection означает любой выделенный элемент в области окна.
Да-да, объект Selection относится к области окна, а не документа. Документ может содержать больше одного открытого окна, а каждое окно - несколько областей, поэтому каждая из этих областей может содержать выделения. (Хотя чисто технически объект Selection принадлежит области окна, ничто не мешает вам считать его принадлежащим окну, если только вам не нужно работать с выделением в определенной области окна, например в нижнем или верхнем колонтитуле).
Хотя вы можете манипулировать выделенными областями с помощью VBA-кода, используя объект Selection, часто гораздо удобнее оказывается использовать объект Range.
Подробно об использовании этих объектов мы поговорим в разделе "Работа с текстом в 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
Изображение, не помещенное в текст
Знакомство с объектами Range
Если вы редактируете документ самостоятельно, вы должны поместить указатель мыши в нужное место либо выделить определенный фрагмент, прежде чем добавлять, удалять или форматировать текст. Однако в Word объекты Range избавляют вас от подобной необходимости. Объект Range определяет неразрывный блок текста в документе. Объекты Range полностью независимы от точки вставки или выделенного раздела, которые пользователь видит в окне документа. После создания объекта Range вы сможете манипулировать текстом, используя команды VBA, полные аналоги мощных команд редактирования Word, точно так же, как при использовании объектов Selection.
Вы можете определить объекты Range в программном коде одним из двух следующих способов:
* работая с диапазонами с помощью свойства Range;
* определив диапазоны с помощью метода Range объекта Document.
Использование свойства Range
Открытый документ 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
Приведенный выше пример иллюстрирует, как объект Range содержит другие объекты, в свою очередь содержащие диапазоны. Инструкция в третьей строке обращается к дипазону, соответствующему первому предложению в исходном диапазоне, после чего отображает его полужирным. Также обратите внимание на то, что вы не можете применить форматирование непосредственно к объектам, таким как слова, предложения или абзацы; для того чтобы это сделать, вам следует использовать их свойства Range.
Если вы планируете использовать диапазон в нескольких инструкциях, которые не следуют одна за другой, вам придется присвоить диапазон переменной. Это позволит вам быстрее составить код программы, а также в конечном итоге ускорить ее выполнение.

