- Любовные романы
- Фантастика и фэнтези
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
VBA для чайников - Стив Каммингс
Шрифт:
Интервал:
Закладка:
Представьте, например, что вы работаете в Microsoft Word. Скажем, требуется, чтобы макрос вставлял текущую дату в начало каждого документа. Можно, конечно, предположить, что текстовый курсор при этом уже находится в самом начале документа. Но не следует быть столь самоуверенным. Даже если курсор находится в нужном месте, когда вы начинаете записывать макрос, все равно первой записываемой командой должна быть команда перемещения курсора в начало документа. Только тогда макрос будет работать правильно, независимо от того, где окажется текстовый курсор.
Запись макросов
К счастью, записывать макросы так же просто, как ложиться в постель. Тем более, что я собираюсь разложить здесь вам все по полочкам.
Запуск средства записи макросов
Запустить средство записи макросов можно одним из следующих способов.
* Выбрать из меню Сервис=Макрос=Начать запись. В последних версиях Office меню Макрос может не появляться до тех пор, пока вы не щелкнете на кнопке с направленной вниз стрелкой внизу в меню Сервис.
* В панели инструментов щелкнуть на кнопке Начать запись макроса, если у вашего t; приложения таковая есть. Например, в Microsoft Office кнопка Начать запись макроса расположена в панели инструментов Visual Basic.
В результате любого из этих действий появится диалоговое окно Запись макроса.
На рис. 2.1 показано диалоговое окно Запись макроса из Microsoft Excel (это окно в разных приложениях выглядит по-разному).
Как выбрать имя для малютки
Стараясь быть полезным, диалоговое окно Запись макроса предложит самое оригинальное из подходящих имен для вашего нового макроса- Макрос1 (или Макрос2, или МакросЗ). Вежливо поблагодарив, быстренько удалите предлагаемое имя и впечатайте вместо него нечто более вам подходящее.
Рис. 2.1. Диалоговое окно Запись макроса в Excel
Имена макросов должны, конечно, ассоциироваться с выполняемыми ими задачами.
Однако при этом следует придерживаться определенных правил. Ну-ка, повторяйте все хором за мной.
* Имя макроса должно начинаться с буквы, а не с цифры. А вот после первой буквы уже могут идти и цифры.
* Имя макроса не должно содержать пробелов. Для выделения начала слов в имени макроса следует использовать прописные буквы, например, как здесь:
ОчисткаВсегоЖесткогоДиска
* Знаки пунктуации тоже не допускаются. Здесь есть исключения, но вполне разумно в именах макросов знаки пунктуации не использовать вообще. Если в именах присутствуют знаки пунктуации. VBA выводит сообщение Invalid procedure name (Недопустимое имя процедуры).
Детальное обсуждение правил выбора имен в VBA приводится в главе 6.
Другие опции диалогового окна Запись макроса
В зависимости от приложения, диалоговое окно Запись макроса может содержать различные опции. Вот несколько примеров.
* Возможно, там будет место для ввода более подробного описания макроса.
* Возможно, у вас будут варианты при определении места хранения макроса. Как правило, предлагается хранить его либо в самом документе, либо в шаблоне документа.
* Возможно, вам предложат приписать макрос кнопке в панели инструментов либо назначить ему комбинацию клавиш. Если ваше приложение предусматривает такую опцию, используйте ее без сомнений! Подробности вы найдете в следующем разделе.
Кнопка, кнопка, ты чья?
Некоторые VBA-приложения позволяют приписать новый макрос кнопке в панели инструментов либо назначить ему комбинацию клавиш еще до начала записи этого макроса.
Воспользуйтесь такой возможностью, ведь использовать кнопку или клавиатуру для вызова макроса удобнее всего.
Если приложение позволяет такой трюк, вы увидите в диалоговом окне Запись макроса соответствующее поле. Так, в Excel в диалоговом окне Запись макроса есть поле Сочетание клавиш, где вы можете указать комбинацию клавиш (например, CtrI+M), которая должна будет запускать макрос (см. рис. 2.1). В Word диалоговое окно Запись макроса содержит кнопки, которые позволят вам либо приписать макрос кнопке в панели инструментов, либо назначить ему комбинацию клавиш (рис. 2.2). Щелкнув на одной из этих кнопок, вы тем самым откроете новое диалоговое окно, в котором и должны будете сделать соответствующие назначения.
Когда вы назначаете комбинацию клавиш новому макросу, не поленитесь сразу же где-нибудь эту комбинацию записать. На время, пока эта новая комбинацию клавиш запомнится, держите напоминание о ней на своем рабочем столе или на экране компьютера.
Рис. 2.2. Диалоговое окно Запись макроса в Word
Начало записи
Командой для начала записи макроса будет щелчок на кнопке ОК в диалоговом окне Запись макроса. О том, что запись началась, вы узнаете по появившейся с этого момента панели инструментов Остановить запись (рис. 2.3). Изменится также и указатель мыши, превратившись в небольшое изображение магнитофонной компакт-кассеты.
Рис. 2.3. Панель инструментов Остановить запись
Запись команд
После начала записи вам не придется предпринимать никаких специальных действий, чтобы записать нужные вам команды в макрос. Нужно просто использовать команды приложения самым обычным способом. Все, что вы будете делать,- и выбор команд из меню, и форматирование изображений, и печатание текста- будет сохранено в макросе.
Ах, да! Все допущенные во время записи ошибки тоже будут добросовестно записаны и помещены в макрос. Чтобы их исправить, вы можете либо записать макрос вновь, либо отредактировать программный код макроса в редакторе Visual Basic (читайте ниже раздел Редактирование программного кода макроса в редакторе Visual Basic).
Паузы во время записи и ее завершение
Чтобы остановить запись после выполнения всех команд, которые вы хотели записать, щелкните на кнопке Остановить запись в панели инструментов с тем же названием (см. рис. 2.3). Запись прекратится, а все записанные команды будут сохранены в виде VBA-программы. (Если вы мне не верите, взгляните на полученный в результате программный код, - подробности ниже, в разделе 'Редактирование программного кода макроса в редакторе Visual Basic.)
Находясь в Word, вы можете сделать паузу в процессе записи макроса. Если вам необходимо выполнить команду, которая не должна быть частью макроса, щелкните на кнопке
Пауза (тоже находится в панели инструментов Остановить запись). Процесс записи впадет в летаргический сон, с этого момента игнорируя все используемые вами команды.
Во время паузы в записи кнопка Пауза будет выглядеть нажатой (рис. 2.4). Официально теперь это будет кнопка Возобновить запись. Щелкните на этой кнопке, когда снова будете готовы продолжить запись временно покинутого вами макроса.
Рис. 2.4. Использование панели инструментов Остановить запись в Word
Выполнение макросов
Весь смысл записи макросов состоит в возможности их последующего воспроизведения или, если предпочитаете, выполнения. Наблюдение за тем, как достаточно сложный макрос выполняет за вас целую кучу утомительной работы, несомненно, можно отнести к тем маленьким радостям, которые делают жизнь приятной, (По причинам, которые я объясню немного позже, непременно сохраните свой документ перед тем, как вызвать для выполнения макрос, выполняющий значительные модификации содержимого документа.)
Ввиду того, что макросы являются VBA-программами, все приемы, которые используются при запуске созданных вручную VBA-программ, применимы и для автоматически записанных макросов. Всегда можно сначала открыть диалоговое окно Макрос (Alt+F8), выбрать в нем нужный макрос, а затем щелкнуть на кнопке Выполнить (в PowerPoint это кнопка Запуск; рис. 2,5). Подробно о технике выполнения VBA-программ говорится в главе 4.
Рис. 2.5. Диалоговое окно Макрос (во многих VBA-приложениях оно называется именно так)
Автоматически записанный макрос не проявляет никакого интеллекта - макрос не может изменять свое поведение в зависимости от изменившихся условий. Будучи запущенным для выполнения, он пытается выполнить записанные команды, даже если в сложившейся ситуации в приложении эти команды вообще неприменимы. Например, если макрос предполагает, что вы находитесь в начале документа, а вы вызвали его, находясь в конце документа, вполне вероятно, что он не сделает ничего вообще. Если вызвать макрос, созданный для манипуляций с текстом, в то время, когда вы редактируете созданный вами рисунок, то такой макрос может свести на нет все ваши многочасовые сверхчеловеческие усилия по созданию шедевра, просто уничтожив последний. Мой вам совет: независимо от сложности макроса, сохраните документ перед тем, как выполнять этот макрос, и будьте всегда готовы воспользоваться командой Отменить (Ctrl+Z).
Редактирование макросов как способ создания программного кода
Не следует думать, что средству записи макросов останется только собирать электронную пыль, когда вы научитесь самостоятельно создавать VBA-код. В действительности, тогда вы сможете использовать это средство еще чаше. В конце концов, наиболее эффектные VBA-программы сильно зависят от объектов, методов и свойств, заимствованных именно из приложения. Вместо того чтобы печатать соответствующие команды вручную, почему бы не записать их как макрос?