Глава 2. Не пишите программу, когда можно записать макрос.

We use cookies. Read the Privacy and Cookie Policy

Глава 2. Не пишите программу, когда можно записать макрос.

В этой главе ...

~ Запись макросов - последовательностей команд, чтобы пользоваться ими снова и снова

~ Запуск средства записи макросов

~ Тонкости записи макросов: они должны работать так, как вы планировали

~ Просмотр и редактирование программного кода макроса в редакторе Visual Basic

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

Как работают макросы

Некоторые VBA-приложения- среди них Microsoft Word, Excel и PowerPoint- имеют средство записи макросов, работа которого напоминает работу обычного магнитофона. После включения средства записи макросов оно будет записывать все команды, которые вы используете в приложении, до тех пор, пока не щелкнете на кнопке Остановить запись. После того как макрос записан, вы сможете воспроизводить его каждый раз, когда вам потребуется записанная в нем последовательность команд.

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

В VBA-приложениях, не имеющих средства записи макросов, термин макрос может означать любую созданную вами VBA-программу. Например, в Visio версий 4.5 и 5 указание создать макрос открывает окно создания новой программы в редакторе Visual Basic. С другой стороны, как минимум в одном из основных VBA приложений - в Access - макрос вообще напрямую никак не связывается с VBA.

В Access, хотя и можно создавать макросы, содержащие последовательности команд, они не сохраняются в виде VBA-кода автоматически (подробности вы найдете ниже во врезке Макросы - не росы). Средство записи макросов отсутствует во всех версиях Access - там есть специальное окно для выбора команд, которые вы собираетесь поместить в макрос.

Макрос- это просто еще одно название для VBA-программы. Средство записи макросов во время своей работы конвертирует каждую из используемых вами команд в соответствующие строки программного кода VBA. Законченный макрос сохраняется как процедура VBA. Процедуры, как разъясняется Б главе 6, - это отдельные единицы программного кода VBA, которые можно вызвать по имени для выполнения. (Если уж говорить совсем строго, то макрос представляет собой процедуру типа Sub, не имеющую аргументов. Вам нужна именно такая строгость?)

Еще один теоретический момент: макросы есть и в Access, и в VBA, но в Access они не являются VBA программами. Макросы в Access создаются с помощью последовательности команд в специально предлагаемом для этого диалоговом окне, Боюсь еще больше запутать дело, но я должен тут добавить, что макрос в Access может вызывать VBA-процедуру Access. Вот так-то.

Когда следует записывать макрос

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

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