Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные для 1 курса / Лабораторная работа 6

.pdf
Скачиваний:
51
Добавлен:
11.02.2015
Размер:
540.36 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА 6

МАКРОРЕКОРДЕР MICROSOFT WORD И MICROSOFT EXCEL

6.1. Макрокоманды Microsoft Word

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

Макросы используются для решения следующих задач:

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

для объединения нескольких команд, например, для вставки таблицы с указанными размерами и границами и определенным числом строк и столбцов;

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

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

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

В случае протоколирования, макрос будет записан в виде серии команд на языке Visual Basic для приложений. Запись макроса можно временно приостановить, а затем продолжить. Для быстрого запуска макроса можно назначить ему кнопку панели инструментов, команду меню или сочетание клавиш. Для выбора команд и параметров допускается применение мыши. Однако действия, проделанные в окне документа с помощью мыши, не записываются. Для записи таких действий, как перемещение курсора, а также выделение, копирование и перемещение текста, необходимо использовать клавиатуру. Если при записи будет допущена ошибка, то в макросе также запишутся все исправления. Перед записью макроса необходимо продумать заранее шаги и команды, которые он должен выполнить. Ненужные инструкции можно будет убрать позже путем редактирования макроса.

Макросы Word хранятся в шаблонах и документах. По умолчанию, макросы хранятся в шаблоне Normal, чтобы они были доступны всем документам Word. При хранении шаблонов в папке \Startup, при каждом запуске Word предоставляет доступ к хранящимся в них макросам. Если макрос будет использоваться только в одном документе, тогда его сохраняют в этом же документе. Отдельные макросы в документе хранятся в проектах макросов, которые можно копировать из одного документа в другой.

При частом использовании макроса необходимо назначить ему кнопку панели инструментов, команду меню или сочетание клавиш. Это позволит быстро вызывать макрос без открытия диалогового окна Макросы.

Пример 6.1

Создать макрос, задающий ввод фразы «МГТУ им. Г. И. Носова», путем протоколирования действий пользователя и назначить его клавише для быстрого использования.

Указания

1.Открыть приложение Microsoft Word.

2.Выполнить команду Вид Макросы Макросы Запись макро-

са.

3. В диалоговом окне Запись макроса (см. рис. 6.1) в поле Имя макроса введите имя макроса МГТУ, в поле Описание – при необходимости введите необязательное описание создаваемого макроса, из списка Макрос доступен для: выберите один из вариантов: Всех документов (Normal.dot) или

<Имя активного документа> (документ).

Рис. 10.1. Вид диалогового окна Запись макроса

4.В области Назначить макрос выберите кнопку Клавишам и назначьте сочетание клавиш – Ctrl+M (см. рис. 6.2). После этого в окне документа появляется панель Остановка записи – это говорит о начале процесса записи макроса путем протоколирования действий пользователя.

5.Введите фразу «МГТУ им. Г. И. Носова» и нажмите кнопку Оста-

новить запись на панели Остановка записи.

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

Ctrl+M или вызвать диалоговое окно Макрос (Вид Макрос Макросы) и выбрать макрос МГТУ.

7.Для просмотра или редактирования макроса выполните команду Вид

Макрос Макросы, в диалоговом окне выбрать макрос МГТУ и нажать

кнопку Изменить. Другой вариант просмотра кода макроса – это выполнить команду Сервис Макрос Редактор Visual Basic (Alt+F11).

Рис. 6.2. Вид диалогового окна Настройка клавиатуры

Текст получившегося макроса имеет вид

Sub МГТУ()

'

'МГТУ Макрос

'Ввод фразы МГТУ им. Г. И. Носова

Selection.TypeText Text:="МГТУ им.Г. И. Носова"

End Sub

Рассмотрим процесс формирования макрокоманд. Теоретически, при включении программы записи макросов VBA «отслеживает» выполнение какого-либо действия или последовательности действий. При выключении программы записи можно воспроизвести результирующий записанный макрос для повторения этой последовательности действий.

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

Рассмотрим на примере, как с помощью VBA удается создать более короткий макрос, чем путем протоколирования действий пользователя.

Пример 6.2

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

Указания 1. Выполнить команду Вид Макросы Макросы Запись макро-

са.

2.В диалоговом окне Запись макроса в поле Имя макроса введите имя макроса Отступ.

3.Выполните команду Главная Абзац и в открывшемся диалоговом окне установите отступ для первой строки абзаца – 1,25 см.

4.Остановите запись с помощью кнопки Остановить запись на пане-

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

5.В результате получили текст макроса:

Sub Отступ()

'

'Отступ Макрос

'Задает отступ для выделенного абзаца (или абзацев)

With Selection.ParagraphFormat

.LeftIndent = CentimetersToPoints(0)

.RightIndent = CentimetersToPoints(0)

.SpaceBefore = 0

.SpaceBeforeAuto = False

.SpaceAfter = 0

.SpaceAfterAuto = False

.LineSpacingRule = wdLineSpaceSingle

.Alignment = wdAlignParagraphLeft

.WidowControl = True

.KeepWithNext = False

.KeepTogether = False

.PageBreakBefore = False

.NoLineNumber = False

.Hyphenation = True

.FirstLineIndent = CentimetersToPoints(1.25)

.OutlineLevel = wdOutlineLevelBodyText

.CharacterUnitLeftIndent = 0

.CharacterUnitRightIndent = 0

.CharacterUnitFirstLineIndent = 0

.LineUnitBefore = 0

.LineUnitAfter = 0

End With End Sub

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

Sub Отступ()

'

'Отступ Макрос

'Задает отступ для выделенного абзаца (или абзацев)

With Selection.ParagraphFormat

.FirstLineIndent = CentimetersToPoints(1.25)

End With End Sub

Программы записи макросов Office не могут записывать каждое от-

дельное простое действие. Это происходит по одной из следующих основных причин. Предпринимаемое действие может быть неоднозначным; иначе говоря, программа записи не в состоянии определить, что именно нужно делать. Например, при работе с абзацем в документе Word и использовании мыши для его выбора, программа записи макросов VBA/Word не может выяснить, что пытается сделать пользователь. Выбирается ли текущий абзац? Или выбирается первый абзац, начинающийся с определенных слов? Возможно, в действительности необходимо выбрать десятый абзац в документе. Или первый из тех, которые содержат свыше ста слов. Именно из-за слишком большой неоднозначности при использовании мыши в большинстве случаев программа записи обычно не будет записывать действия мыши.

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

Если курсор находится внутри абзаца документа Word и нужно указать программе записи выбрать первое слово в этом абзаце, вам не удастся сделать это с помощью двойного щелчка на первом слове абзаца. Программа записи просто не позволит это сделать. Она не в состоянии записать действие двойного щелчка из-за его неоднозначности: пользователь знает, что нужно выбрать первое слово в текущем абзаце, но это невозможно точно указать с помощью щелчка мыши. Чтобы программа записи смогла выполнить запись, необходимо вместо использования мыши, прибегнуть к клавишам перемещения по тексту. Например, для перехода к началу текущего абзаца следует нажать комбинацию клавиш <Ctrl+ >. Для выделения первого слова в абзаце необходимо нажать клавиши <Ctrl+Shift+ >. Для преобразования шрифта в курсивный необходимо нажать клавиши <Ctrl+I>.

Очень трудно запомнить все плохо клавишные комбинации Word. Для создания 10-страничного документа с перечнем всех комбинаций клавиш выберите команду Сервис Макрос Макросы, введите listcommands и нажмите клавишу <Enter>. Основные (часто используемые сочетания клавиш) приведены в табл. 6.1.

Таблица 6.1

Встроенные сочетания клавиш

Имя команды

Клавиши

 

 

Файл Создать

Ctrl+N

Файл Открыть

Ctrl+O

Файл Сохранить

Shift+F12

Правка Отменить ввод

Alt+BS

Правка Повторить ввод

F4

Правка Вырезать

Shift+Del

Правка Копировать

Ctrl+Ins

Правка Вставить

Shift+Ins

Правка Выделить все

Ctrl+Num 5

Выделить абзац

Ctrl+A

 

 

Выделить до начала слова

Ctrl+Shift+

Выделить до конца слова

Ctrl+Shift+

Выделить до конца документа

Ctrl+Shift+End

 

 

Выделить до начала документа

Ctrl+Shift+Home

 

 

Перейти на один абзац вверх

Ctrl+

Перейти на один абзац вниз

Ctrl+

Перейти на одно слово вправо

Ctrl+

Имя команды

Клавиши

 

 

Перейти на одно слово влево

Ctrl+

Перейти в начало документа

Ctrl+Home

 

 

Перейти в конец документа

Ctrl+End

 

 

Перейти к первой ячейки строки табли-

Alt+Home

 

 

Перейти к последней ячейки строки

Alt+End

 

 

Перейти к первой ячейке столбца

Alt+Page Up

 

 

Перейти к последней ячейке столбца

Alt+Page Down

 

 

Выделить всю таблицу

Shft+Alt+5

 

 

Пример 6.3

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

Указания 1. Выполнить команду Вид Макросы Макросы Запись макро-

са.

2.В диалоговом окне Запись макроса в поле Имя макроса введите имя макроса Выделить_Слово.

3.Выполните команду с клавиатуры: Ctrl+ (переход в начало абзаца), Shift+Ctrl+ (выделение первого слова), Ctrl+I (курсив), Home (установить курсор в начало строки).

4.Остановите запись с помощью кнопки Остановить запись на пане-

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

5.В результате получили текст макроса:

Sub Выделить_Слово()

'

'ВыделитьСлово Макрос

'Курсор задан в абзаце (текущий абзац).

'Переходим в начало абзаца, выделяем первое слово

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

'

Selection.MoveUp Unit:=wdParagraph, Count:=1

Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend Selection.Font.Italic = wdToggle

Selection.HomeKey Unit:=wdLine

End Sub

10.2.Задания первого уровня

1.Записать макрос, выполняющий форматирование выделенного абзаца (или абзацев) по правилам, приведенным в табл. 6.2, согласно варианту.

Таблица 6.2

Условия форматирования1

 

 

Абзац

 

 

 

 

 

Шрифт

 

№ варианта

Выравнивание

Интервал

Первая строка

Межстрочный интервал

 

Начертание

 

 

Все прописные

Перед

 

После

Шрифт

 

Размер

 

 

 

 

 

 

 

 

 

 

 

 

1

Центр

6

 

6

нет

1,5

Roman

Ж

 

16

Да

 

 

 

 

 

 

 

 

 

 

 

2

Центр

3

 

3

нет

1,5

ЖК

 

14

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

Влево

3

 

3

нет

1,5

New

 

14

Нет

 

 

 

 

 

 

 

 

 

 

 

4

По ширине

0

 

0

1 см

1,5

 

14

Нет

 

Times

 

 

 

 

 

 

 

 

 

 

 

 

5

Центр

0

 

0

нет

1,5

Об

 

14

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

Вправо

0

 

0

нет

1,5

 

Об

 

14

Нет

 

 

 

 

 

 

 

 

 

 

 

 

7

 

1,5

 

 

14

Да

 

 

 

 

 

 

 

 

 

 

 

 

8

Центр

 

3

нет

Arial

К

 

 

 

 

 

 

 

 

 

 

 

 

9

Вправо

12

 

12

нет

Об

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

0

 

12

1

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

11

 

ЖК

 

 

 

 

 

 

 

 

 

 

 

 

 

12

Центр

6

 

6

нет

ЖК

 

14

Да

 

 

 

 

 

 

 

 

 

 

 

 

13

По ширине

0

 

0

1 см

2

 

12

 

 

 

 

 

 

 

 

 

 

 

 

2. Записать макрос, используя встроенные сочетания клавиш, приведенные в таблице 6.1. Условие задачи выбирается согласно варианту по табл.

6.3.

Таблица 6.3

 

Условие задачи для записи макроса

Вариант

Условие задачи

1Создайте макрос, выполняющий выделение полужирным курсивом второго слова в текущем абзаце.

2Создайте макрос, выполняющий выделение курсивом первой строки предыдущего абзаца

3Создайте макрос, выполняющий выделение курсивом последнего слова текущего абзаца

4Создайте макрос, выполняющий подчеркивание первых двух слов в текущем абзаце

5Создайте макрос, выполняющий подчеркивание последних двух слов в текущем абзаце

1 Параметры с прочерком (–) задаются по умолчанию.

Вариант

Условие задачи

6

Создайте макрос, который бы все вхождения в тексте вы-

 

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

7

В тексте документа встречаются листинги программ, на-

 

писанные на Cи. Напишите макрос, который все коммента-

 

рии определял курсивом

8

В документе встречается рисунки подписанные «Рис.». Не-

 

обходимо написать макрос, который исправляет данную

 

подпись на «Рисунок».

9

Напишите макрос, который удаляет все лишние пробелы из

 

текста документа

10

В документе встречаются кавычки русского и английского

 

языка. Записать макрос, исправляющий английские кавычки

 

на русские.

11

В документе встречается ряд ссылок «табл.». Необходимо

 

написать макрос, который исправляет данную ссылку на

 

«таблица»

12

В тексте документа встречается выражение «Для про-

 

граммы». Создайте макрос, который меняет приведенное

 

выше выражение на «При использовании программы», выде-

 

ленное полужирным курсивом

6.3. Макрокоманды электронных таблиц Microsoft Excel

Некоторые действия в Microsoft Excel, так же как и в Word, могут носить повторяющийся характер. Excel хранит макросы в рабочих книгах или шаблонах. В отличие от Word, Excel не поддерживает связь между книгой и использовавшимся для ее создания шаблоном; в случае добавления или редактирования макроса в шаблоне этот макрос доступен только в новых книгах, создаваемых с помощью этого шаблона. При запуске Excel автоматически открывает все книги, хранящиеся в папке \xlsart, включая скрытую книгу Personal.xls. Таким образом, все макросы в книге Personal.xls доступны всегда.

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

Наиболее простым способом создания макроса является его запись, заключающаяся в перечислении действий. Для этого необходимо включить

процедуру записи макроса, определить последовательность команд макроса,

азатем выключить запись макроса.

Впроцессе записи макроса включенные в него команды протоколируются, автоматически переводятся на язык Visual Basic и хранятся в отдельном листе модуля.

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

Пример 6.4

Создать макрос в Microsoft Excel, задающий ввод фразы «МГТУ им. Г. И. Носова», путем протоколирования действий пользователя и назначить его клавише для быстрого использования.

Указания

1. Открыть приложение Microsoft Excel.

2. Выполнить команду Вид Макросы Макросы Запись макро-

са.

3. В диалоговом окне Запись макроса (см. рис. 6.3) в поле Имя макроса введите имя макроса МГТУ, в поле Сочетание клавиш: – определите сочетание клавиш, в поле Описание – при необходимости введите необязательное описание создаваемого макроса, из списка Макрос доступен для: выберите один из вариантов: Личная книга макросов, Новая книга, Эта книга.

Рис. 6.3. Вид диалогового окна Запись макроса

4. После этого, в строке состояния окна рабочего листа, появляется па-

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