Запуск и завершение работы процедур



Способы запуска и завершения работы процедур в 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!