Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / Источники / excel_2010_professionalnoe_programmirovanie_na_vba_RuLit_Me_412629.pdf
Скачиваний:
4
Добавлен:
27.09.2025
Размер:
22.97 Mб
Скачать

188

Часть III. Visual Basic for Applications

Параметры записи

В процессе записи действий, применяемых для создания VBA-кода, в распоряжении пользователя оказывается ряд параметров диалогового окна Запись макроса (Record Macro). Все они описаны ниже.

Имя макроса (Macro Name). Предоставляет возможность ввести название записы­ ваемой процедуры. По умолчанию Excel использует названия Макрос1, Макрос2 и т.д. для каждого записываемого макроса. Вы можете использовать имя по умолча­ нию и изменить его позже, однако лучше сразу назвать макрос правильным именем.

Комбинация клавиш (Shortcut Key). Позволяет выполнить макрос с помощью комбинации клавиш. Например, введя в данном поле w (в нижнем регистре), вы можете выполнить макрос. Для этого нажмите комбинацию клавиш <Ctrl+W>. После ввода символа W(в верхнем регистре) макрос запускается по нажатию ком­ бинации клавиш <Ctrl+Shift+W>. Помните о том, что комбинация клавиш, назна­ ченная макросу, переопределяет встроенную комбинацию клавиш (если она есть). Например, если для вызова макроса воспользоваться клавишами <Ctrl+B>, вы не сможете применить эти клавиши для выбора полужирного стиля выделения ячеек.

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

Параметр Сохранить в (Store Macro In). Указывает Excel, где должен храниться макрос, который записывается. По умолчанию Excel помещает записанный макрос в модуль активной рабочей книги. По желанию можно записать его либо в новой рабо­ чей книге (Excel открывает пустую рабочую книгу), либо в личной книге макросов. (Дополнительные сведения можно найти во врезке “Личная книга макросов”.)

Примечание

Excel запоминает ваш выбор, поэтому в следующий раз по умолчанию мак­ рос записывается туда же, куда он записывался в предыдущий раз.

Описание (Description). При желании в поле Описание (Description) можно вве­ сти описание макроса. Введенный текст отображается в начале кода макроса в ви­ де комментария.

Личная книга макросов

В процессе создания макрос можно сохранить в личной книге макросов (Personal Macro Workbook). Здесь можно сохранить макросы VBA, которые вы считаете особенно полезными. Эта рабочая книга называется P e r s o n a l . x l s b и хранится в папке X L S t a r t . Загрузка данной рабочей книги происходит после запуска Excel, причем вы сразу же получаете доступ к хранящимся там макросам. Книга P e r s o n a l . x l s b скрыта, поэтому при обычной работе в Excel она не видна.

Файл P e r s o n a l . x l sb не существует до тех пор, пока не будет записан первый макрос.

Улучшение записанных макросов

Итак, вы уже знаете о том, что запись действий при выполнении всего лишь одной ко­ манды (Разметка страницы^Параметры страницы^Ориентация (Page Layout^Page Setup^Orientation)) приводит к генерированию большого объема кода VBA. Во многих случаях записанный код включает ненужные команды, которые следует удалять вручную.

Глава 7. Введение в VBA

189

Кроме того, функция записи макросов не всегда гарантирует получение эффективно­ го кода. Работая с созданной программой, вы можете обнаружить следующее: как прави­ ло, Excel анализирует то, что выделено (т.е. определяет активный объект), а затем ис­ пользует в генерируемых операторах объект S e le c tio n . Например, ниже приводится пример кода, который генерируется при выделении диапазона ячеек и использовании не­ которых кнопок вкладки Главная (Ноше) для изменения числового форматирования, атакже применения полужирного и курсивного стилей.

Range ("A l : С5 " ) . S e l e c t

S e le c t io n . S t y l e = "Comma"

S e l e c t i o n . F o n t . B o l d = T r u e

S e le c t io n . F o n t . I t a l i c = T r u e

Записанный код VBA работает, но он представляет собой всего лишь один способ выполнения этих действий. Можно также воспользоваться более эффективной конструк­ циейW ith-End W ith, как показано ниже.

Range ( " A l : С5 " ) . S e l e c t With S e l e c t i o n

. S t y l e = "Comma"

. F o n t . B o l d = T r u e

. F o n t . I t a l i c = T r u e End W ith

Можно избежать применения метода S e le c t, в результате чего появится более эф­ фективный код.

With Range ( " А 1 : С 5 " )

. S t y l e = "Comma" . F o n t . B o l d = T r u e

. F o n t . I t a l i c = T r u e End W ith

Если в вашем приложении важна скорость выполнения операций, то необходимо тщательно анализировать любой записанный код VBA, чтобы сделать его как можно бо­ лееэффективным.

Конечно, вам придется разобраться в VBA, прежде чем приступить к улучшению ко­ да записанных макросов. А пока примите к сведению, что записанный код VBА не все­ гдаявляется наилучшим и наиболее эффективным решением задачи.

Опримерах кода в книге

Вэтой книге представлено много небольших примеров кода VBA, объясняющих от­ дельную тему или представляющих пример решения поставленной задачи. Зачастую этот код может состоять из единственного оператора. В некоторых случаях примеры представлены только выражением, которое не является корректной инструкцией.

Ниже представлено типичное выражение.

Range ( " A l" ) . V a l u e

Чтобы протестировать выражение, его необходимо выполнить. Для этого часто применяется функция M sgB ox .

MsgBox Range (" A l " ) . V a l u e

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

Sub

T e st ()

'

Здесь н а х о д и т с я о п е р а т о р

End Sub