Запуск и завершение работы процедур
Способы запуска и завершения работы процедур в VBA, конструкция End Sub, конструкция Exit Sub
С примерами вызова процедур и функций из кода мы уже сталкивались:
nResult = fSum (3, 2)
Достаточно записать имя процедуры/функции, передать ей необходимые параметры, а для функции еще и принять необходимые значения. Одни процедуры можно вызывать из других процедур. Но как дать пользователю возможность запустить самую первую процедуру?
В нашем распоряжении следующие возможности:
· создать макрос (то есть специальную процедуру, не принимающую параметров, в модуле NewMacros) и запустить его по имени, кнопке или комбинации клавиш (см. раздел 1.4). Макрос затем может вызвать другие процедуры;
· создать форму и воспользоваться набором событий этой формы и элементов управления на ней (об этом рассказано в разделе, посвященном работе с формами и элементами управления), или просто элементом управления на листе Excel или документе Word;
· назначить процедуре специальное имя (AutoExec(), AutoNew() и т.п.). Полный список таких специальных имен можно посмотреть в документации. Правда, поскольку раньше эти возможности активно использовались вирусами, в Office2003 по умолчанию эти макросы запускаться не будут. Для того, чтобы обеспечить им (и многим другим макросам) возможность запуска, необходимо изменить установленный режим безопасности в меню Сервис -> Макрос -> Безопасность, или обеспечить подписи для ваших макросов (об этом будет говориться ниже).
|
|
· вместо специального имени для макроса использовать событие: например, событие запуска приложения, событие открытия документа и т.п. Это — рекомендованный Microsoft способ обеспечения автоматического запуска программного кода;
· можно запустить приложение из командной строки с параметром /m и именем макроса, например:
winword.exe /mMyMacros
Очень удобен в использовании ярлык Windows, в котором прописан этот параметр запуска.
В VBA вполне допустима ситуация, когда функция запускает на выполнение саму себя. Однако подобных ситуаций лучше избегать (по возможности заменяя их на циклы). Причина — проблемы с читаемостью и возможное (в случае бесконечного запуска функцией самой себя) исчерпание оперативной памяти (переполнение стека), чреватое серьезными системными ошибками.
Для завершения выполнения процедуры в VBA предусмотрены конструкции End и Exit. Синтаксис их очень прост:
Exit Sub
End Sub
Делают они одно и то же — завершают работу текущей процедуры. Однако используются они в разных ситуациях:
· оператор End — это завершение работы процедуры после того, как все сделано. После оператора End код процедуры заканчивается;
· оператор Exit — это немедленное завершение работы функции в ходе ее работы. Обычно помещается в блок оператора условного перехода, чтобы произвести выход, как только выяснилось, что функции по каким-то причинам дальше выполняться нельзя (например, дальше идет код обработчика ошибок).
|
|
Встроенные функции языка Visual Basic For Applications
Встроенные функции языка Visual Basic For Applications
Встроенные функции VBA, справка по встроенным функциям
В языке программирования VBA предусмотрено несколько десятков встроенных функций. Они доступны в любой программе на языке VBA, при этом безразлично, в среде какого программного продукта мы находимся — Excel, Word, Access или, к примеру, AutoCAD. Используются они очень активно, и во многих ситуациях без них не обойтись. Профессиональные программисты применяют их совершенно автоматически, а обычным пользователям хочется посоветовать потратить несколько часов на знакомство с ними — потому что без знаниях этих функций эффективно работать в VBA не получится. Дополнительный аргумент в пользу их изучения: практически идентичный набор функций есть в обычном Visual Basic и VBScript, а многие из этих функций с теми же названиями и синтаксисом встречаются и в других языках программирования — C++, Delphi, Java, JavaScript и т.п.
|
|
В справке по VBA встроенные функции сгруппированы по буквам (см. рис. 3.2).
Рис. 3.2 Справка по встроенным функциям
Многие слушатели на курсах задавали вопрос: а нет ли справки по этим функциям на русском языке? К сожалению, такой справки мне найти не удалось, поэтому попытаюсь привести такую справку в этом курсе. Ниже будет рассказано про большинство активно используемых функций языка VBA (математические функции, которые в практической работе почти не используется, типа косинуса или тангенса, и финансовые функции мы рассматривать не будем). Полный синтаксис для экономии места приводиться не будет: главное — понимание, что делает каждая функция и в каких ситуациях ее можно использовать.
Функции в следующих разделах сгруппированы по своей функциональности.
Дата добавления: 2018-10-27; просмотров: 511; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!