Содержание 1 введение 6

Вид материалаРеферат
10.3 Просмотр и корректировка и удаление макросов
10.4 Создание макросов в редакторе VBA
Подобный материал:
1   ...   11   12   13   14   15   16   17   18   ...   25

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



Для просмотра тела макроса необходимо выбрать его имя из списка макросов в окне Макрос и нажать кнопку Изменить. На экране появится окно редактора Visual Basic. В нем в виде команд Visual Basic представлены все действия пользователя при записи макроса. Для примера рассмотрим макрос, в котором производилась работа с текстом (рис. 10.3).

Первая строка нашего кода – это запись текста.

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

Третья строка – запись текста.

Четвертая строка – нажатие клавиши ENTER, новый абзац.

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





Рис. 10.3  Текст макроса в окне редактора Visual Basic


Чтобы удалить макрос, необходимо выбрать его имя из списка макросов в окне Макрос и нажать на кнопку Удалить.

10.4 Создание макросов в редакторе VBA



Довольно часто макросы создаются непосредственным набором текста в редакторе VBA. Почему?

Приведем следующие аргументы:
  1. во-первых, в некоторых случаях средство автоматической записи макросов не может решить поставленную задачу. Например, нельзя записать нажатия клавиш, выполненные в другом приложении. В то же время одна из важнейших характеристик VBA – это возможность использования в любом приложении, поддерживающем VBA;
  2. во-вторых, мышь используется только для выбора команд меню и работы в диалоговых окнах. Например, нельзя воспользоваться мышью, чтобы выделить текст;
  3. в-третьих, команды отмены и нажатия клавиши <Backspace> не записываются. Хотя текст макросов, при записи которых отменялись побочные действия, укорачивается, однако, при этом становится и возможной запись команд отмены и нажатий клавиши <Backspace>, если они действительно нужны.

Кроме того, с помощью VBA можно создавать более короткие макросы. Предположим, требуется создать макрос, который только выделяет выбранный текст синим цветом. Для запуска средства автоматической записи пользуйтесь командой Сервис\Макрос\Начать запись (Tools\Macro\Record), задайте имя макроса (например, «Blue»), а затем нажмите кнопку OK (Record). Затем выберите команду Формат\Шрифт (Format\Font) и укажите цвет шрифта. Посмотрите, сколько текста содержится в созданном макросе!

Sub Blue()

'

' Blue Макрос

' Макрос записан 01.02.2004 Alex Potahov

'

With Selection.Font

.Name = "Times New Roman"

.Size = 12

.Bold = False

.Italic = False

.Underline = wdUnderlineNone

.UnderlineColor = wdColorAutomatic

.StrikeThrough = False

.DoubleStrikeThrough = False

.Outline = False

.Emboss = False

.Shadow = False

.Hidden = False

.SmallCaps = False

.AllCaps = False

.Color = wdColorSkyBlue

.Engrave = False

.Superscript = False

.Subscript = False

.Spacing = 0

.Scaling = 100

.Position = 0

.Kerning = 0

.Animation = wdAnimationNone

End With

End Sub

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

Обратите внимание, что выполнение макросов или процедур VBA, в которых указана избыточная информация, может привести к нежелательным результатам. Поэтому после записи макроса убедитесь, что в нем используются только нужные свойства и методы объекта.

Из данной ситуации имеются два выхода: можно создать макрос в VBA, не прибегая к автоматической записи, либо использовать редактор Visual Basic, чтобы удалить ненужные строки. В последнем случае довольно просто найти подлежащие уничтожению инструкции. Например, параметры, описывающие шрифт, перечисляются ниже строки with Selection.Font, поэтому все, что необходимо сделать – это запустить редактор VBA и уничтожить инструкции, которые не относятся к цвету символов.

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


Sub Blue()

'

' Blue Макрос

' Макрос записан 01.02.2004 Alex Potahov

'

With Selection.Font

.Color = wdColorSkyBlue

End With

End Sub


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