VBA для чайников
Шрифт:
Поэтому проверьте, не приходится ли вам снова и снова повторять в приложении одни и те же последовательности команд. Как только вы обнаружите, что такие последовательности у вас есть, сразу же запишите их виде макроса. А еще лучше, если вы знаете наперед, что какую-то новую последовательность команд вам придется использоваться и в дальнейшем, запишите соответствующий ей макрос уже при первом случае ее применения. И уже со следующего раза используйте макрос.
Макрос -
Макросы очень полезны для своего прямого назначения, но не менее полезны они для использования программного кода записанного макроса как примера для начала освоения программирования в VBA. После того как вы запишете несколько макросов, вы наверняка загоритесь желанием как-нибудь их улучшить и сделать более гибкими. В результате совсем небольших усилий с помощью VBA вы можете добавить своим макросам немного интеллекта и заставить их выполнять различные действия в зависимости от ситуации. Это будет обсуждаться ниже, в разделе Редактирование макросов как способ создания программного кода.
Планирование макросов
Прежде чем вы пропустите этот тоскливый раздел и с головой погрузитесь в процесс записи макросов, выслушайте один довольно консервативный совет: чтобы избежать лишней головной боли, уделите немного времени планированию макроса перед тем, как записывать его.
Можно, конечно, запустить средство записи макросов и начать громоздить одну за другой команды сразу, как только в голове появится хотя бы смутное представление о том, что должен делать ваш новый макрос. Вот только средство записи макросов очень добросовестно запишет буквально каждую из вызываемых вами команд, в том числе и все допущенные вами ошибки. А в восьми или девяти случаях из десяти такие ошибки у вас будут.
Ясно, что можно удалить неудавшийся макрос и начать все сначала. Но можно и избавить себя от таких проблем, если потратить немного времени на планирование макроса.
Продумайте те шаги, которые должен выполнять макрос, предварительно попробуйте их, чтобы убедиться, что результат будет соответствовать запланированному, и только затем записывайте макрос.
При планировании макроса учитывайте все специальные условия, необходимые для его правильной работы. Процесс записи должен включать и добавление в макрос команд, нужных для воссоздания этих необходимых условий.
Представьте, например, что вы работаете в Microsoft Word. Скажем, требуется, чтобы макрос вставлял текущую дату в начало каждого документа. Можно, конечно, предположить, что текстовый курсор при этом уже находится в самом начале документа. Но не следует быть столь самоуверенным. Даже если курсор находится в нужном месте, когда вы начинаете записывать макрос, все равно первой записываемой командой должна быть команда перемещения курсора в начало документа. Только тогда макрос будет работать правильно, независимо от того, где окажется текстовый
Запись макросов
К счастью, записывать макросы так же просто, как ложиться в постель. Тем более, что я собираюсь разложить здесь вам все по полочкам.
Запуск средства записи макросов
Запустить средство записи макросов можно одним из следующих способов.
* Выбрать из меню Сервис=Макрос=Начать запись. В последних версиях Office меню Макрос может не появляться до тех пор, пока вы не щелкнете на кнопке с направленной вниз стрелкой внизу в меню Сервис.
* В панели инструментов щелкнуть на кнопке Начать запись макроса, если у вашего t; приложения таковая есть. Например, в Microsoft Office кнопка Начать запись макроса расположена в панели инструментов Visual Basic.
В результате любого из этих действий появится диалоговое окно Запись макроса.
На рис. 2.1 показано диалоговое окно Запись макроса из Microsoft Excel (это окно в разных приложениях выглядит по-разному).
Как выбрать имя для малютки
Стараясь быть полезным, диалоговое окно Запись макроса предложит самое оригинальное из подходящих имен для вашего нового макроса- Макрос1 (или Макрос2, или МакросЗ). Вежливо поблагодарив, быстренько удалите предлагаемое имя и впечатайте вместо него нечто более вам подходящее.
Рис. 2.1. Диалоговое окно Запись макроса в Excel
Имена макросов должны, конечно, ассоциироваться с выполняемыми ими задачами.
Однако при этом следует придерживаться определенных правил. Ну-ка, повторяйте все хором за мной.
* Имя макроса должно начинаться с буквы, а не с цифры. А вот после первой буквы уже могут идти и цифры.
* Имя макроса не должно содержать пробелов. Для выделения начала слов в имени макроса следует использовать прописные буквы, например, как здесь:
ОчисткаВсегоЖесткогоДиска
* Знаки пунктуации тоже не допускаются. Здесь есть исключения, но вполне разумно в именах макросов знаки пунктуации не использовать вообще. Если в именах присутствуют знаки пунктуации. VBA выводит сообщение Invalid procedure name (Недопустимое имя процедуры).
Детальное обсуждение правил выбора имен в VBA приводится в главе 6.
Другие опции диалогового окна Запись макроса
В зависимости от приложения, диалоговое окно Запись макроса может содержать различные опции. Вот несколько примеров.
* Возможно, там будет место для ввода более подробного описания макроса.
* Возможно, у вас будут варианты при определении места хранения макроса. Как правило, предлагается хранить его либо в самом документе, либо в шаблоне документа.