Чтение онлайн

на главную

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

Открытие окон с помощью VBA

Каждый открытый документ содержит как минимум одно окно, а пользователь Word может открыть столько окон, сколько нужно для работы с любым документом. Каждое из подобных окон- объект с его собственными правами. В объектной модели Word объект Application содержит коллекцию Windows, содержащее все окна для всех открытых документов. Кроме того, каждый объект Document содержит свою собственную коллекцию объектов Windows.

Две основные причины работы с объектами Window в Word- контроль над внешним видом окна, а также манипулирование содержимым документа с помощью объекта Selection. Объект Selection я подробно рассмотрю в следующем разделе настоящей главы; здесь же я остановлюсь на приеме, позволяющем определить конкретное окно, а также познакомлю со свойствами,

которые вы сможете использовать для определения внешнего вида окна.

Обращение к окнам из программного кода

Прямо из программного кода проще всего обращаться к тому окну, в котором открыт редактируемый документ во время запуска процедуры. Для указания окна используется объект ActiveWindow.

Для определения окна прямо в программном коде вам следует определить его как члена одной из коллекций Windows. При работе с глобальной коллекцией объектов Windows вам не нужно указывать собственно объект Application. При обращении к коллекции объектов Windows определенного документа, указывать имя объекта этого документа нужно обязательно. Вы можете идентифицировать окно по его имени или индексному номеру в коллекции. Имя окна совпадает с именем документа, который в нем отображается, за исключением того, что если для одного документа открыто несколько окон, после указания имени документа следует ставить точку с запятой, после которой указать номер окна.

Ниже приведены типичные ссылки для объектов Window.

Ссылка

Комментарии

Windows ( "Document 4" )

Действительна, если для документа Document 4 открыто только одно окно

Windows ("Kites and skipropes.doc: 3")

Указывает на третье окно документа

Documents("Window display.doc") .Windows (2)

Указывает на второе окно в коллекции Windows данного документа

Работа с областями окон

Когда вы разделяете окно с помощью команды Окно=Разделить, верхняя и нижняя часть окна являются отдельными областями. Окно Word содержит как минимум одну область, но может содержать и больше областей. В областях Word также отображает и такие сведения, как верхние и нижние колонтитулы, сноски и комментарии.

Если вам необходимо получить доступ к настройкам внешнего вида выделения в отдельной области, вы должны сначала идентифицировать в программном коде целевой объект Рапе. Обращение к определенному объекту осуществляется по его номеру в коллекции объектов Panes для данного окна. Однако вы можете опустить ссылки на области в том случае, когда вам необходимо работать со стандартной основной частью окна (или верхней частью, если окно разделено).

Изменение внешнего вида окна

Объекты Window предлагают большое количество свойств, определяющих состояние всех элементов, которые вы видите на экране. Основная часть этих свойств может принимать только одно из двух возможных значений - True или False. Например, чтобы включить схему документа для активного документа, используйте следующую инструкцию:

ActiveWindow.DocumentMap = True

Используйте подобные инструкция для включения или выключения различных свойств, таких как DisplayScreenTips или DisplayVerticalScrollBar. He забывайте о том, что ключевое слово Not обращает текущее значение логической переменной или свойства. Вот пример изменения значения свойства:

ActiveWindow.Displ ayRul es = _

Not ActiveWi ndow.DisplayRules

Свойства Left, Top, Height и Width позволяют вам определять размер и расположение окна, которое не развернуто на весь экран.

Использование объекта 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 представляет текущее расположение точки вставки.

Поделиться:
Популярные книги

Императорский отбор

Свободина Виктория
Фантастика:
фэнтези
8.56
рейтинг книги
Императорский отбор

Начальник милиции 2

Дамиров Рафаэль
2. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции 2

Держать удар

Иванов Дмитрий
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Держать удар

Ты не мой Boy 2

Рам Янка
6. Самбисты
Любовные романы:
современные любовные романы
короткие любовные романы
5.00
рейтинг книги
Ты не мой Boy 2

Проданная Истинная. Месть по-драконьи

Белова Екатерина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Проданная Истинная. Месть по-драконьи

Идеальный мир для Лекаря 5

Сапфир Олег
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 5

Холодный ветер перемен

Иванов Дмитрий
7. Девяностые
Фантастика:
попаданцы
альтернативная история
6.80
рейтинг книги
Холодный ветер перемен

На границе империй. Том 4

INDIGO
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
На границе империй. Том 4

Его наследник

Безрукова Елена
1. Наследники Сильных
Любовные романы:
современные любовные романы
эро литература
5.87
рейтинг книги
Его наследник

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Семья. Измена. Развод

Высоцкая Мария Николаевна
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Семья. Измена. Развод

Новая Инквизиция 2

Злобин Михаил
2. Новая инквизиция
Фантастика:
фэнтези
боевая фантастика
городское фэнтези
5.00
рейтинг книги
Новая Инквизиция 2

Приручитель женщин-монстров. Том 1

Дорничев Дмитрий
1. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 1

Свои чужие

Джокер Ольга
2. Не родные
Любовные романы:
современные любовные романы
6.71
рейтинг книги
Свои чужие