Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5401.pdf
Скачиваний:
5
Добавлен:
13.11.2022
Размер:
1.36 Mб
Скачать

54

смотрение функциональность Word-таблиц и поддержка печати, целого документа или его частей: свойство PrintPreview просмотра перед печатью, метод отправки документа на принтер PrintOut, который принимает множество аргументов настройки процесса печати.

Word предоставляет богатую объектную модель, которая позволяет программно контролировать Word и создание документов из управляющего кода. Здесь дано лишь первое представление о средствах для решения задач, связанных с созданием документов и их редактированием. Для продолжения изучения объектной модели предлагается читать документацию по VBA [10, 13 – 14, 19 – 20].

Контрольные вопросы

1.Какой объект возглавляет иерархию объектной модели офисного приложения Word?

2.Каково назначение объекта Selection?

3.Что представляет объект Selection, если в документе ничего не выделено?

4.В чем отличие объекта Range от объекта Selection?

5.Что такое закладка?

6.В чем отличие закладки от Range и Selection?

7.Как программно переместить курсор в конец документа?

8.Как программно добавить абзац?

9.Как программно вставить текст?

10.Как программно удалить фрагмент текста?

11.Как программно отформатировать фрагмент текста?

Автоматизация работы при помощи макросов

Освоение VBA является не такой сложной задачей, как кажется на первый взгляд начинающему или даже опытному пользователю, не знакомому с основами программирования. Здесь возможно поэтапное освоение VBA, поэтапное совершенствование разрабатываемого решения в соответствии с повышением профессионального уровня пользователя-разработчика. Решение некоторой задачи может быть вначале запрограммировано самым простым способом – с помощью макрорекордера. Затем автоматически полученный код можно переработать вручную для решения задач, напри-

55

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

Макрос – это записанная последовательность нажатий клавиш, выбора команд и некоторых других элементарных действий, созданная для автоматизации работы.

Макросы используются для:

объединения часто выполняемых операций редактирования или форматирования;

упрощения доступа к параметрам в диалоговых окнах;

автоматизации выполнения часто повторяющейся последовательности встроенных команд текстового процессора;

создания пользовательских команд.

Макросы можно создавать двумя способами: с помощью макрорекордера или в редакторе Visual Basic. Первый способ позволяет быстро создавать макросы при минимуме усилий.

Макрорекордер – это инструмент записи макросов, обеспечивающий автоматическую запись действий пользователя в виде операторов VBA. Запускается макрорекордер из верхнего меню офисного приложения Сер-

вис Макрос Начать запись, например, для Word см. рис. 16.

Рис. 16. Меню Сервис – Макрос

56

Макрос хранится в виде процедуры на языке Visual Basic в документе, в шаблоне или в исполнимом файле winword.exe в виде процедуры, реализующей команду. По умолчанию макросы сохраняются в шаблон

Обычный (Normal.dot).

Правила именования макросов те же, что для переменных. Имя макроса должно начинаться с буквы, не содержать пробелов, не превышать 80 символов. Необходимо только учитывать, что если вы придумали имя своему макросу, совпадающее с названием встроенной команды Word, то ваш макрос заменит соответствующую команду Word.

Функции мыши в режиме записи макроса ограничены. Мышью можно работать только с элементами управления: выбирать команды из верхнего меню или панелей инструментов, параметры в диалоговых окнах. Перемещение по документу и операции выделения фрагментов должны осуществляться с клавиатуры (см. табл. 6).. В процессе записи исправить ошибку можно при помощи меню Правка Отменить. Только что набранный текст, удаленный клавишей BackSpace, также не пропишется в код.

Таблица 6 Комбинации клавиш для перемещения курсора ввода, выделения

фрагментов документа и использования буфера обмена

Комбинация клавиш

Операция

 

 

Right (клавиша

перемещение курсора вправо на один символ

со стрелкой вправо)

 

Left (клавиша

перемещение курсора влево на один символ

со стрелкой влево)

 

Ctrl+Right

переход к началу следующего слова справа

Ctrl+Left

переход к началу следующего слова слева

Shift+Right

выделение символа вправо от курсора

Shift+Left

выделение символа влево от курсора

Ctrl+Shift+Right

выделение до начала следующего слова справа

Ctrl+Shift+Left

выделение до начала следующего слова слева

Ctrl+X

вырезать выделенное в буфер обмена

Ctrl+C

копировать выделенное в буфер обмена

Ctrl+V

вставить из буфера обмена в точку стояния

 

курсора ввода

 

 

57

Пример записи макроса

Создадим макрос ДваСлова для обмена местами текущего слова со следующим.

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

Предварительно перед началом записи макроса выберите два соседних слова, которые будете менять местами. Установите курсор на первом из двух слов. Это объект Word Текущее слово.

Начните запись макроса из меню Сервис Макрос Начать запись… – диалог Запись макроса (см. рис. 16, рис. 17).

Назовите свой макрос ДваСлова (Имя макроса: ДваСлова). Назначить свой макрос кнопке на панели инструментов, команде меню или горячей клавише можно позже, равно как и переназначить макрос другому элементу. Эту секцию (см. рис. 17.I) в диалоговом окне Запись макроса для начала пропустим.

Рис. 17. Диалог Запись макроса перед началом записи макроса ДваСлова

Сохраняйте свой макрос ДваСлова в своем документе, а не как гло-

бальный в шаблоне Normal.dot (Макрос доступен для: имяВашего-

Документа.doc (см. рис. 17.II). Нажимаем Ok. Если вы все сделали правильно, курсор приобрел вид магнитофонной кассеты , на экране появилась панель Остановка записи (см. рис. 18), в строке состояния редактора Word загорится индикатор ЗАП. С этого момента все ваши нажатия записываются в виде кода на Visual Basic в процедуру ДваСлова.

58

Рис. 18. Панель инструментов

Остановка записи

Действия по шагам:

1.Передвиньте курсор на один символ правее текущего слова

(Ctrl+Right).

2.Выделите слово слева от курсора (Shift+Ctrl+Left).

3.Вырежьте выделение в буфер обмена (Ctrl+X).

4.Передвиньте курсор на слово вправо (Ctrl+Right).

5.Вставьте слово из буфера (Ctrl+V).

6.Остановите запись макроса, щелкнув мышью по кнопке Оста-

новить запись на панели Остановка записи (см. рис. 18).

Сохраните документ. Ваш макрос ДваСлова подпишется в конец вашего документа.

Проверьте, как работает макрос, запустив его на выполнение из меню

Сервис Макрос Макросы... ДваСлова Выполнить (см.

рис. 19).

Рис. 19. Диалоговое окно Макрос

Просмотрите текст макроса в редакторе Visual Basic из меню Сервис - Макрос Макросы... - Изменить. При этом произойдет запуск редак-

59

тора VBA и откроется модуль (фрагмент проекта VBA), содержащий исходный текст указанного макроса. В окне Code (Программа) вы увидите приблизительно следующий код:

Sub ДваСлова()

ДваСлова Макрос

Макрос записан 27.09.2004 Комова О.С.

Selection.MoveRight Unit:=wdWord, Count:=1 Selection.MoveLeft Unit:=wdWord, Count:=1, _

Extend:=wdExtend

Selection.Cut

Selection.MoveRight Unit:=wdWord, Count:=1 Selection.Paste

End Sub

В первой строке объявляется процедура (Sub) с именем ДваСлова. На второй и третьей строках прописываются комментарии, они начинаются с символа одинарная кавычка. В четвертой строке производится сдвиг курсора на одно слово вправо. В пятой строке производится выделение одного слова влево. В шестой строке вырезается выделенный фрагмент в буфер. В седьмой строке курсор переносится на одно слово вправо. В восьмой строке осуществляется вставка из буфера в точку стояния курсора. В девятой строке макрорекордер прописал конец процедуры End Sub.

Обратите внимание, для создания макроса использовались:

объект Word ThisDocument.Selection – объект выделенный пользователем фрагмент в текущем документе;

метод MoveRight − перемещение курсора вправо;

метод MoveLeft − перемещение курсора влево;

метод Cut − вырезание в буфер обмена;

метод Paste − вставка из буфера обмена.

Создайте свою панель инструментов с именем МоиКоманды: Вид Панели инструментов Настройка... – вкладка Панели инструментов Создать (см. рис. 20).

60

Рис. 20. Создание панели инcтрументов

Поместите на свою панель инструментов кнопку для запуска макроса

ДваСлова: Вид Панели инструментов Настройка... – вкладка Команды Категории: Макросы Команды: ДваСлова визуально перетащить на свою панель инструментов (см. рис. 21).

Рис. 21. Назначение макроса на кнопку панели инструментов

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]