Найти в Дзене
VBA Excel с нуля

VBA Excel № 61. Синтаксис и область действия функции в VBA.

Пользовательские функции имеют много общего с процедурами типа Sub (более детально процедуры типа Sub были рассмотрены в статье №57). Для объявления функции применяется следующий синтаксис: Итак, разберём вышеуказанный синтаксис: Да и ещё, не присваивайте функциям имена, которые соответствуют названиям встроенных функций Excel. В случае возникновения конфликта между именами функций, программа делает выбор в пользу встроенных функций. Имена функций подчиняются тем же правилам, что и имена переменных. Лучше всего избегать использования имен, которые могут быть перепутаны с адресами ячеек в Excel. Область действия функции Область действия функции определяет, может ли она быть вызвана процедурами в других модулях или рабочих листах. Важные моменты: Эти основы помогут вам создавать пользовательские функции в VBA. При создании функций следуйте синтаксису и учитывайте область действия, чтобы функции работали правильно в вашем проекте VBA.
Оглавление
Скриншот с моего ноутбука
Скриншот с моего ноутбука

Пользовательские функции имеют много общего с процедурами типа Sub (более детально процедуры типа Sub были рассмотрены в статье №57).

Для объявления функции применяется следующий синтаксис:

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Итак, разберём вышеуказанный синтаксис:

  • Public (необязательное ключевое слово). Указывает, что функция доступна для других процедур во всех остальных модулях активных проектов VBA.
  • Private (необязательное ключевое слово). Указывает, что функция доступна только для других процедур в текущем модуле.
  • Static (необязательное ключевое слово). Указывает, что значения переменных, которые объявлены в функции, сохраняются между вызовами функции.
  • Function (обязательное ключевое слово). Обозначает начало функции, возвращающей значение или другие данные.
  • имя (обязательное ключевое слово). Представляет произвольное название функции. При именовании функций используются те же правила, что и при задании имен переменным. По окончании выполнения функции результат присваивается ее названию список аргументов
  • список_аргументов (необязательный). Список из одной или нескольких переменных, представляющих аргументы, которые передаются в функцию. Аргументы заключены в скобки. Для разделения пар аргументов используется запятая.
  • тип (необязательный). Тип данных, которые возвращает функция.
  • Exit Function (необязательный). Инструкция, вызывающая немедленный выход из функции до ее завершения.
  • инструкции (необязательные). Корректные инструкции VBA.
  • End Function (обязательное). Ключевая фраза, обозначающая конец функции.
Да и ещё, не присваивайте функциям имена, которые соответствуют названиям встроенных функций Excel. В случае возникновения конфликта между именами функций, программа делает выбор в пользу встроенных функций.
Имена функций подчиняются тем же правилам, что и имена переменных. Лучше всего избегать использования имен, которые могут быть перепутаны с адресами ячеек в Excel.

Область действия функции

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

  • Имейте ввиду, что если область действия функции не задана, то по умолчанию она считается Public.
  • Функции, объявленные как Private, не отображаются в диалоговом окне "Вставка Функции" (см. скриншот), и их нельзя использовать в формулах рабочего листа.
Скриншот с моего ноутбука
Скриншот с моего ноутбука
  • Если вам необходимо вызвать функцию из другой рабочей книги, нужно установить ссылку на эту книгу в VBE Tools=>References (Сервис=>Ссылки).
Скриншот с моего ноутбука
Скриншот с моего ноутбука
  • Функции, определенные в надстройке, доступны для использования во всех рабочих книгах.
Эти основы помогут вам создавать пользовательские функции в VBA. При создании функций следуйте синтаксису и учитывайте область действия, чтобы функции работали правильно в вашем проекте VBA.