[an error occurred while processing this directive] | |
1-й час. Знакомство с Visual Basic for Applications 3-й час. Работа с элементами управления 4-й час. Переменные и константы 6-й час. Логика условных операторов 7-й час. Циклические вычисления 9-й час. Основные объекты Excel 11-й час. Редактор Visual Basic 15-й час. Автоматизация экранных форм 20-й час. Получение внешних данных |
2-й час. Работа с макросамиВ 1-м часе "Знакомство с Visual Basic for Applications" мы рассмотрели основы работы с макросами. В этом часе мы сосредоточим внимание на более сложных темах, связанных с макросами. Напомню, что мы изучаем макросы для дальнейшего их применения при написании кодов VBA. Позднее, при создании приложений VBA, вы будете использовать технические приемы, описанные в этом часе. В этом часе будут рассмотрены следующие вопросы.
Назначение макросам комбинаций клавишДля более эффективного использования макросов им можно назначать комбинации клавиш. Назначенная комбинация клавиш - это такой набор клавиш, при нажатии которых выполняется какая-либо команда или макрос. Например, для выполнения команды копирования вы применяете известную любому пользователю комбинацию клавиш <Ctrl+C>. Excel позволяет назначать комбинации клавиш любому макросу. Назначаемая комбинация клавиш должна содержать клавишу <Ctrl> и клавишу с любой буквой по вашему выбору. После назначения макросу комбинации клавиш вы можете использовать ее для выполнения макроса наравне с командой Макрос > Макросы из меню Сервис. Назначаемые вами комбинации клавиш отменяют любые используемые в Excel по умолчанию или ранее назначенные комбинации клавиш. Другими словами, если вы назначите своему макросу комбинацию клавиш <Ctrl+C>, то теперь при нажатии этой комбинации не будет выполняться привычная всем команда копирования, а будет выполняться ваш макрос. Чтобы избежать подобных "накладок" при назначении макросам комбинации клавиш, я советую вам распечатать список используемых в Excel комбинаций клавиш. Для этого выполните следующие действия.
Комбинацию клавиш можно назначить макросу как в процессе создания макроса, так и по окончании его записи. Если вы хотите назначить комбинацию клавиш в процессе создания макроса, то после выполнения команды Сервис > Макрос > Начать запись в секции Сочетание клавиш диалогового окна Запись макроса введите нужную букву в поле Ctrl+. Если вы не назначили комбинацию клавиш в процессе создания макроса, то можете это сделать в любое время. Например, чтобы назначить комбинацию клавиш макросу БольшойШрифт, созданному в 1-м часе, выполните такие действия.
В зависимости от уровня безопасности, установленного в вашей системе, при открытии рабочей книги вы можете увидеть окно предупреждения, сообщающее, что открываемая книга содержит макросы, и предлагающее на ваш выбор отключать или не отключать макросы. Щелкните на кнопке Не отключать макросы.
Рис. 2.1. С помощью этого диалогового окна можно назначить макросу комбинацию клавиш
Хотя формально нет никаких ограничений на использование в комбинациях клавиш русских букв, рекомендуем назначать буквы при установленной английской раскладке клавиатуры, так как комбинации клавиш с русскими буквами не всегда срабатывают. - Прим. ред.
Если вы хорошо знакомы с комбинациями клавиш, назначенных в Excel по умолчанию, то знаете, что комбинация <Ctrl+B> применяет к содержимому выделенных ячеек полужирное начертание. В нашем случае эта комбинация клавиш назначена исполняемому макросу, поэтому изменено встроенное в Excel назначение этой комбинации. Такая замена будет действовать, пока открыта данная книга. Отметим, что Excel не мешает такому переназначению клавиш и даже не предупреждает об этом. По-видимому, Excel предполагает, что вы знаете, что "творите"! Где хранить макросыПри создании своих первых макросов вы скорее всего соглашались с тем местом хранения макросов, которое предлагает Excel по умолчанию. Но вообще-то Excel предлагает три места сохранения макросов:
По умолчанию макросы сохраняются в текущей рабочей книге. Это подразумевает, что макросы будут доступны только тогда, когда эта книга открыта. Если вы выбираете опцию сохранения макроса в новой рабочей книге, то эта книга будет создана автоматически. При желании можно сохранить макрос в личной книге макроса, эта книга также будет автоматически открыта или создана (если она не была создана ранее). Создание личной книги макросовЛичная книга макросов - специальная скрытая рабочая книга, предназначенная для хранения макросов. При первом сохранении макросов в личной книге макросов создается новый файл с названием PERSONAL.XLS. После создания этого файла он автоматически открывается при каждой загрузке программы Excel. Так как личная книга постоянно открыта, то все макросы, сохраненные в ней, всегда доступны. Отсюда следует простой вывод - если вы хотите, чтобы какой-либо макрос был доступен во всех рабочих книгах, сохраните его в личной книге макросов. Личная книга макросов - специальная скрытая рабочая книга, предназначенная для хранения макросов. При первом сохранении макросов в личной книге создается новый файл с названием PERSONAL.XLS. После создания этого файла он автоматически открывается при каждой загрузке программы Excel. Так как личная книга постоянно открыта, то все макросы, сохраненные в ней, всегда доступны. Отсюда следует простой вывод - если вы хотите, чтобы какой-либо макрос был доступен во всех рабочих книгах, сохраните его в личной книге макросов. Личная книга макросов находится на жестком диске компьютера в папке C:\Windows\Application Data\Microsoft\Excel\XLStart. Сохранение макросов в личной книге макросовПроцедура сохранения макроса в личной книге макросов ничем не отличается от аналогичной процедуры сохранения в текущей рабочей книге. Процесс сохранения макроса в личной книге рассмотрим на примере создания простого макроса, который применяет к содержимому выделенных ячеек курсивное и полужирное начертание. Выполните следующие действия.
Выполнение макросов из личной книги макросовПосле сохранения макроса в личной книге макросов вы можете использовать его из любой рабочей книги. Для этого сделайте следующее.
Рис. 2.2. Макрос, сохраненный в личной книге макросов, можно использовать в любой рабочей книге
Редактирование макросов в личной книге макросовРедактирование макросов из личной книги макросов имеет небольшое отличие от редактирования макросов из обычной рабочей книги. Поскольку личная книга макросов скрыта, вы должны сначала ее отобразить, а затем редактировать ее содержимое. Чтобы отобразить окно личной книги макросов и начать редактирование одного из ее макросов, сделайте следующее.
Рис. 2.3. Отображение скрытого окна личной книги макросов - первый шаг в редактировании ее макросов
Удаление макросов из личной книги макросовДля того чтобы удалить макрос из личной книги макросов, сначала откройте ее, как описано в предыдущем разделе, а затем выполните следующее.
Назначение макросов командным кнопкамОдной из основных ваших целей как разработчика приложений должно быть создание легких в использовании интерфейсов для выполнения задач автоматизации. Самый простой путь реализации этой цели - использование командных кнопок непосредственно в рабочей книге. Вставить командную кнопку в рабочий лист можно с помощью панели инструментов Формы. Затем можно назначить ей любой макрос. После выполнения этой процедуры щелчок на вставленной командной кнопке будет вызывать на выполнение назначенный макрос. В приведенном ниже примере вы создадите кнопку, назначите ей макрос и выполните этот макрос с помощью созданной кнопки. Для этого выполните следующие действия.
Рис. 2.4. Панель инструментов Формы содержит различные элементы управления, которые можно использовать для автоматизации задач
Рис. 2.5. Это диалоговое окно используется для назначения макроса командной кнопке Как вы видите, использование командных кнопок - один из простых и эффективных способов создания интерфейса для выполнения задач автоматизации. Назначение макроса графическим изображениямВы не ограничены использованием только командных кнопок для выполнения макросов. Любые изображения, находящиеся на рабочем листе, могут быть использованы для выполнения макросов. Например, если вы создаете макросы для анализа данных, относящихся к различным компаниям, то можете использовать логотип компании как кнопку, щелчок на которой вызывает выполнение соответствующего макроса. Для назначения макроса графическому изображению выполните следующие действия.
Рис. 2.6. Любое графическое изображение можно использовать для выполнения макроса
Когда вы начнете писать настоящие процедуры VBA, то с помощью описанной здесь техники сможете назначать эти процедуры графическим изображениям и командным кнопкам. Назначение макросов кнопкам панелей инструментовЕсли не хотите использовать командные кнопки или графические изображения для выполнения макросов, то у вас есть альтернатива. Можно назначить макрос кнопке панели инструментов. Excel позволяет изменять панели инструментов путем добавления на них новых кнопок. Затем можно назначить новой кнопке макрос. Чтобы воспользоваться этой возможностью, выполните следующую последовательность действий.
Для отображения диалогового окна Настройка можно также щелкнуть правой кнопкой мыши на любой панели инструментов или строке меню и выбрать команду Настройка из контекстного меню.
Рис. 2.7. Это диалоговое окно позволяет добавлять кнопки на существующие панели инструментов и создавать новые панели
РезюмеВ этом часе мы изучили две основные темы. Сначала мы рассмотрели различные возможности сохранения макросов, а затем изучили несколько вариантов выполнения макросов (обычно макросы выполняются с помощью команды Сервис > Макрос > Макросы). Теперь вы знаете, как назначить макросу комбинацию клавиш, как назначить макрос командной кнопке, графическому изображению или кнопке панели инструментов. Не забывайте, что вы можете использовать эти приемы и для выполнения процедур, написанных на языке VBA. Вопросы и ответыВопрос. В чем может помочь изучение макросов разработчику приложений для Excel? Ответ. Во-первых, изучение макросов в дальнейшем может сократить время разработки приложений. Часто бывает, что быстрее записать макрос, а затем его отредактировать, чем написать код VBA с нуля. Во-вторых, изложенная в этом часе техника назначения макросов различным объектам (командным кнопкам, графическим изображениям и кнопкам панелей инструментов) также применима при разработке интерфейсов приложений VBA. Вопрос. Можно ли назначить процедуры VBA командным кнопкам, графическим изображениям и кнопкам панелей инструментов? Ответ. Да, для этого достаточно воспользоваться техникой назначения, описанной в этом часе. ПрактикумС помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении. Тесты
УпражнениеНазначьте макрос Заголовок, созданный в качестве упражнения 1-го часа, командной кнопке, графическому изображению и кнопке панели инструментов. |
[an error occurred while processing this directive] |