- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
VBA для чайников - Стив Каммингс
Шрифт:
Интервал:
Закладка:
Представьте себе учителя, который ставит отличную оценку за подобную поэму:
Розы красные
Фиалки фиолетовые
У меня есть велосипед
Любишь ли ты рыбу?
потому что каждая из строк имеет вполне понятный смысл. Компилятор VBA подобен такому учителю.
Как только компилятор закончит свою работу, программа начнет выполняться. Вы можете теперь испытать все ее возможности и увидеть, работает ли она так, как вы планировали.
Нашу с вами программу тестировать легко. Если в окне будет нужное сообщение, а не Windows Must Die!, и если шелчок на кнопке ОК завершает выполнение программы, то примите мои поздравления. Если же нет, то придется вам заняться искоренением ошибок.
4-й шаг. Отладка
По мере усложнения программ вероятность появления ошибок в работе (ошибок выполнения) растет экспоненциально. После обнаружения такой ошибки главной задачей становится выявление причины ошибки и устранение проблемы. Одним словом, это отладка.
В небольших программах иногда работает следующий грубый, но достаточно эффективный метод: просто начните внимательно читать весь программный код с самого начала строку за строкой, чтобы попытаться обнаружить, что именно порождает проблему. Поняв это, вы сможете, как правило, без особых усилий устранить ее. (Если что-то не так с вашей программой-примером, просто сравните свой программный код с напечатанным здесь и внесите необходимые исправления.)
К счастью, VBA предлагает несколько средств автоматизации процесса отладки в дополнение к предложенному выше методу ломания головы. Все подробности вы найдете в главе 14.
Знайте, что описанные выше методы - а работают они только в редакторе Visual Basic, - будут единственными способами непосредственного запуска программ, построенных на форме, как наша программа-пример. Чтобы вывести форму на экран из VBA-приложения, нужно с помощью редактора
Visual Basic создать процедуру типа Sub (макрос), которая вызывает форму, а затем выполнить эту процедуру (макрос) в приложении. Для этого сделайте следующее.
1. В редакторе Visual Basic выберите Insert=Module, чтобы создать модуль и открыть окно его программного кода.
2. Напечатайте следующие строки программного кода:
Sub ShowQuote()
UserForml.Show
End Sub
Если ваша форма названа не UserFormi, а как-то иначе, замените это имя во второй строке на правильное.
Сохранив изменения, вы сможете начать выполнение макроса ShowQuote способом, предлагаемым в главе 4. Более подробно выполнение программ, основанных на формах, обсуждается в главе 10.
Я считаю, что лучший способ доступа к VBA-приложениго при работе в редакторе Visual Basic обеспечивается стандартными приемами Windows для перехода от приложения к приложению. Нажимайте Alt-Tab до тех пор, пока в появившемся окне не будет выбрана пиктограмма нужного вам приложения, после чего отпустите клавиши. Любой из следующих способов годится тоже.
* Выберите View=AutoCAD (или имя того приложения, с которым работаете вы).
* Щелкните на кнопке View в левой части панели инструментов редактора Visual
* Basic - на этой кнопке будет пиктограмма, представляющая документ приложения.
* Нажмите Alt+F11.
* Щелкните на кнопке приложения в панели задач Windows.
Вернуться в редактор Visual Basic можно с помощью Alt+Tab, панели задач, снова нажав Alt+F11 или выбрав Сервис=Макрос=Редактор Visual Basic.
Собираясь пожелать редактору Visual Basic доброй ночи, сделайте это одним из следующих двух способов, каждый из которых закрывает редактор и возвращает вас как раз к тому приложению, откуда этот редактор был вызван.
* Выберите FileClose and Return to приложение.
* Нажмите Alt+Q.
Глава 4. Выполнение VBA-программ.
В этой главе ...
~ Выполнение программ и макросов из диалогового окна Макрос - надежно, но не слишком интересно
~ Запуск макросов с помощью кнопок панели инструментов и пунктов меню
~ Назначение для макросов комбинации клавиш
~ Автоматический запуск программ при наступлении определенных событий
Убойная сила VBA-программы не значит ничего до тех пор, пока вы не нажмете ее спусковой крючок. А в нашем случае ЭТОТ спусковой крючок сначала нужно еще найти.
Говоря более прозаическим языком, пока вы не найдете способ, с помощью которого сможете запустить свою VBA-программу, программа остается бесполезной.
Во время создания программы в окне редактора Visual Basic вы всегда могли выполнить ее, нажав F5 или щелкнув на кнопке Run (Выполнить) в панели Standard (Стандартная) редактора Visual Basic. Это вполне удобно при тестировании программы, но совершенно никуда не годится для реальной работы. После того как программа готова, ее нужно запускать из соответствующего приложения.
В этой главе обсуждаются возможности, которые можно использовать для запуска
VBA-программ и макросов из VBA-приложений. (Еще раз напомню, что макрос- это та же VBA-программа, которой посчастливилось быть записанной средствами автоматической записи; подробности в главе 2. Не пишите программу, когда можно записать макрос.) Одна из самых простых возможностей для запуска большинства программ обеспечивается диалоговым окном Макрос, но уж очень это неудобно. VBA-программа становится действительно полезной, когда вы можете запустить ее командой меню, кнопкой в панели инструментов или нажатием определенной комбинации клавиш, а еще лучше, предусмотрев автоматическое выполнение.
Попрактикуйтесь в этом с макросами, которые вы запишете, следуя указаниям главы 2, или с процедурами, которые вы создадите с помощью редактора Visual Basic, используя либо краткие инструкции из главы 6, либо подробные объяснения из частей II и III.
Все определяется именем
Вызов VBA-программы осуществляется по имени.
Извините за то, что приходится начинать с технических подробностей, но другого выхода я не вижу. При вызове VBA-программы вы на самом деле запускаете одну специальную процедуру VBA. Ваша программа может содержать немало самых различных процедур, но только одна из них имеет первую строку кода, говорящую о том, что вы хотите выполнить программ). Эта первая процедура может запускать (вызывать) другие процедуры, которые в свою очередь могут вызывать следующие и т.д. Для того чтобы выполнить программу, вы должны вызвать только первую процедуру - остальные выполнятся автоматически по мере выполнения программой своей задачи.
Хотите узнать что-нибудь более существенное по поводу процедур? Обратитесь к главе 6, где вы получите полный ответ.
А в чем же здесь проблема? В том, что, запуская VBA-программу, вы должны знать имя процедуры, которая разбудит эту программу. В программах, содержащих больше одной процедуры, запускающая процедура обычно называется Main.
Запуск из диалогового окна Макрос
Вполне надежно запускать VBA-программы из диалогового окна Макрос. Если вы не позаботились о том, чтобы приписать программу кнопке в панели инструментов или комбинации клавиш, либо если вы просто забыли, чему вы ее приписали, всегда можно воспользоваться диалоговым окном Макрос.
Вызов диалогового окна Макрос
Чтобы вызвать диалоговое окно Макрос в приложениях Office или в Visio, выполните одно из следующих действий.
* Выберите команду Сервис=Макрос=Макросы.
* Нажмите Alt+F8.
Другие VBA-приложения предлагают иные возможности для того, чтобы открыть диалоговое окно Макрос.
Диалоговое окно Макрос должно выглядеть подобно изображенному на рис. 4.1. Как всегда, некоторые детали могут быть другими, в зависимости от используемого вами VBA-приложения.
Рис. 4. 1. Диалоговое окно Макрос в приложении PowerPoint
Больше всего места в диалоговом окне Макрос выделено для списка доступных в данный момент VBA-программ.
Строго говоря, все процедуры, приведенные в списке диалогового окна Макрос, являются процедурами типа Sub (т.е. подпрограммами) без аргументов.
(Загляните в главу 2, чтобы убедиться, что это и есть официальное определение макроса.) После запуска такой процедуры от может вызывать процедуры других типов, включая процедуры типа Function (т.е. функции) и процедуры Sub с аргументами. Подробности в главе 6.
Выполнение макроса
Запуск макроса из диалогового окна Макрос вряд ли можно назвать большим достижением.
Выполняемая при этом последовательность шагов должна быть такой.
1. Выберите макрос из списка ниже поля Имя.
2. Щелкните на кнопке Выполнить.
Ну как, круто? Как альтернативу можно использовать двойной щелчок на имени программы в списке.
Единственной сложностью при этом может оказаться поиск в списке диалогового окна
Макрос имени той программы, которую нужно выполнить. Если вы испытываете такие трудности, обратитесь за помощью к следующему разделу.
Поиск макроса в диалоговом окне Макрос
В диалоговом окне Макрос имена приведенных в списке VBA-программ (макросов) могут иногда сбивать с толку. В зависимости от того, где хранится программа, она может приводиться в списке с идентифицирующим ее префиксом.

