В Visual Basic процедуры и функции выполняют важную роль при работе с этим языком. Например, они способны:
- устранить лишние строки в вашем коде, потому что можно один раз и в одном месте создать процедуру или функцию, а потом вызывать ее при необходимости;
- улучшить восприятие ваших скриптов, так как их легче читать и понимать;
- упростить разработку скриптов, потому что не нужно постоянно повторять один и тот же код, а скрипты будут разделены на отдельные логические блоки.
Visual Basic (VBA) функции и процедуры
Функции и процедуры в VBA немного похожи, поэтому их многие путают, но тем не менее у них есть отличия:- функция по своей особенности может возвращать какое-то значение через собственное имя, то есть ее можно применять в качестве операнда в выражениях, а процедура может возвращать результаты только через параметры, поэтому ее нельзя применять в выражениях;
- функция вызывается путем указания ее имени в каком-либо операторе, а процедура вызывается отдельным оператором.
Процедуры VBA
Процедурам, как и функциям, нужно давать уникальные имена и при необходимости дописывать требуемые параметры.
Процедура в VBA имеет следующий шаблон построения:
Sub НаименованиеПроцедуры ([параметры процедуры через «запятую»])
ОператорыПроцедуры
End Sub, где:
- «НаименованиеПроцедуры» — это уникальное имя процедуры Sub;
- параметры можно указывать, а можно не указывать;
- «ОператорыПроцедуры» — в этом блоке расположены все операторы, которые определяют функциональность процедуры.
Передача параметров в процедуру VBA
Когда мы описываем процедуру, в круглых скобках мы можем указать какие-то параметры. На самом деле, эти параметры являются «формальными», так как являются всего лишь местом, где будут указываться фактические параметры.
Когда мы вызываем процедуру, в ней располагаются фактические параметры, чьи значения нам уже известны. Такие значения мы можем передавать в процедуру по ссылке или по значению. Потому что каждая переменная в процедуре имеет свое собственное значение и уникальный адрес расположения в оперативной памяти компьютера.
Вот и получается, что VBA дает возможность передавать параметры в процедуру, используя уникальное значение переменной или по ее адресу в оперативной памяти.
- ByVal — это ключевое слово, которое нужно указывать, если происходит передача параметров в процедуру VBA по значению переменной.
- ByRef — это ключевое слово, которое нужно указывать, если происходит передача параметров в процедуру VBA по ссылке переменной.
Функции в Visual Basic
Функции в Visual Basic — это довольно частое явление, они возвращают какие-то значения, поэтому применяются в различных выражениях. Функции в VBA бывают разные:- Математические. Например: Abs, Cos, Exp, Int, Fix, Log, Rnd, Round, Sin и др.
- Для преобразования типов и представления данных. Например: Cbool, Cbyte, Ccur, Cdate, Csng. Cvar, Hex и др.
- Для работы с массивами. Например: Array, Erase, Lbound, Ubound и др.
- Для обработки строк. Например: Asc, Choose, Chr, Error, Filter, Format и др.
- Стандартные, для ввода-вывода и работы с цветом. Например: InputBox, MsgBox, QBColor, RGB и др.
- Для работы с датой и временем. Например: Date, DateAdd, DateDiff, Day, Hour, Minute и др.
- Для работы с папками и файлами. Например: ChDir, ChDrive, Close, FileAttr и др.
- Для работы с объектами и приложениями. Например: CallByName, CreateObject, Environ и др.
- Функции статуса. Например: IsArray, IsDate, IsError, IsNull и др.
- Финансовые. Например: DDB, FV, Ipmt, IRR, MIRR, NPV и др.
Function НазваниеФункции ([Параметры]) as Тип функции
ОператорыФункции
[ReturnЗначение]
End Function
Заключение
В Visual Basic (VBA) функции и процедуры, как правило, облегчают работу над подпрограммами, которые вы будете кодить. Поэтому пробуйте и берите на вооружение эти возможности языка, чтобы облегчить свою работу.
Смотри также: Что являют собой циклы в Visual Basic? Кто является операторами цикла?
Как вы считаете, материал был полезен?