Пользовательские процедуры и функции



Выше мы пользовались встроенными процедурами и функциями VBA. Может показаться, что их достаточно много для решения любой задачи. Но даже при таком разнообразии порой нужны совершенно особые процедуры, которые пользователь может создать самостоятельно.

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

Например, очевидно, что при обработке такой последовательности команд: num_A = num_B + val(str_C) вместо выражения val(str_C) подставляется числовое значение переменной str_C, найденное благодаря функции Val. Или, скажем, такое выражение: num_A = InputBox("Введите число"). Здесь функция InputBox возвращает введенное пользователем число в переменную num_A.

Процедуры, как уже было сказано, лишь выполняют какие-то действия, не возвращая никаких значений в точку вызова. Например, если мы вызываем окно сообщения с надписью, не настраивая никаких дополнительных параметров, то мы можем решить, что имеем дело с процедурой. Такой вызов: MsgBox ("Привет"), будет отлично работать. В то же время, MsgBox может вести себя как функция, возвращая в точку вызова код нажатой кнопки при настройках кнопок окна сообщения отличных от стандартных.

Разобравшись в отличиях процедур и функций, поговорим о том, зачем они нам нужны. Во-первых, процедуры удобно использовать для сокращения объема программы, выделяя в них часто используемые блоки операторов. Если вам придется создавать реальные программы, вы очень скоро убедитесь в том, что некоторые операции (например - запись каких-либо значений на лист MS Excel, создание и сохранение документов и т.д.) могут быть нужными в различных местах программы и занимать порой несколько десятков строчек кода. Нерационально каждый раз копировать эти участки кода в нужное место. Во-первых - увеличивается размер текста программы, во-вторых - если вам понадобится изменить что-нибудь в часто используемом наборе операторов - придется искать все такие участки и редактировать каждый из них. Гораздо удобнее будет выделить часто используемый участок в виде самостоятельной процедуры и каждый раз, когда он будет нужен, вызывать его с помощью одной лишь строчки кода.


Дата добавления: 2016-01-06; просмотров: 14; Мы поможем в написании вашей работы!

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






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