Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
analise
7 лет назад

VBA Excel. Урок 2. Подпрограммы: Процедуры и функции

Итак, наступил новый день. Блиночков покушали, все друг друга простили. А теперь новый урок.
Сегодня нам предстоит разобраться в подпрограммах, а точнее понять разницу между процедурой и функцией.

Подпрограммы
Подпрограмма - часть программы, которая оформляется особым образом и имеет свое собственное имя. Для чего же нужны подпрограммы?

  • В подпрограмму можно вынести повторяющиеся фрагменты кода и вызывать по мере необходимости. Таким образом можно сократить количество строк кода и оптимизировать программу.
  • Можно разбить программу на части "по смыслу" (структурировать), что в итоге облегчит понимание кода программы и облегчит редактирование кода при последующих модификациях.

Процедура
Подпрограмма типа процедура - это независимая часть программы, которая имеет собственное уникальное имя и которую можно вызвать по имени из других подпрограмм. В модуле VBA можно создать любое количество подпрограмм.

Объявляется процедура в VBA следующим образом:

Sub <имя процедуры> (параметры)
<тело процедуры>
End Sub

Начинается всегда с ключевого словаSub.
Затем идет имя процедуры. Оно может быть на латинице или русском языке, но не должно начинаться с цифры. Лучше всего давать такое имя процедуре, которое будет описывать действия, выполняемые ее операторами. Например, SortData (что означает - сортировка данных). После имени процедуры объявляются параметры передаваемые процедуре, если их нет, то остаются просто пустые скобки. Пустые скобки можно не ставить, редактор их проставит автоматически сам, после того, как вы перейдете на другую строку.
В теле процедуры прописываются команды которые необходимо выполнить программе.
А заканчивается процедура оператором End Sub.

Пример процедуры


Sub primer ()
a=5
b=6
msgbox a*b
End Sub

Для выполнения устанавливаем курсор на тексте процедуры и нажимаем F5. Результатом выполнения команд описанных в процедуре будет сообщение с текстом "30".
Сначала переменной a присвоили значение 5
Затем b присвоили значение 6
Функция Msgbox отображает сообщение - произведение a и b


Функция
Подпрограмма типа функция - это процедура, которая возвращает значение. Функция ВСЕГДА возвращает значение. Функции, написанные в модулях VBA можно использовать не только в программах, но и формулах на листах книги Excel. Таким образом наряду со встроенными функциями экселя (СУММ, ВПР и тд) вы можете пользоваться собственными функциями. Например, можно написать функцию, которая будет возвращать стоимость GBG в рублях в определенную ячейку.
Синтаксис объявления функций:
Function <имя функции> (параметры)
<тело функции>
<имя функции> =<значение>
End Function
Начинается с ключевого словаFunction. Далее - имя функции. Затем объявляются параметры передаваемые функции.
В теле функции прописываются команды которые необходимо выполнить и функции присваивается значение, которое необходимо вернуть. Заканчивается оператором End Function.

Пример функции


Function primer2 ()
a=5
b=6
primer2 = a*b
End Function

Вызывать функцию будем из процедуры (т.е. на выполнение запускаем процедуру)

Sub primer ()
msgbox primer2
End Sub

Результатом выполнения команд описанных в процедуре и функции будет снова сообщение с текстом "30".
После запуска процедуры, выполняется команда msgbox primer2 - вывести сообщение со значением функции primer2. В этот момент запускается функция primer2 и выполняются операции, описанные в ней:
Переменной a присвоили значение 5.
Переменной b присвоили значение 6
Функции присвоили значение - произведение a и b
Вернулись в процедуру и в тексте сообщения вывели полученное значение.

Пробуйте, задавайте вопросы! Завтра уже следующий урок.

109
744.418 GOLOS
На Golos с October 2016
Комментарии (1)
Сортировать по:
Сначала старые