Процедуры типа Function

Процедуры типа Function

Процедура типа Function, в принципе, работает так же, как и процедура типа Sub, но в данном случае ее главная задача - вычисление некоторого значения. Когда процедура типа Function завершит свою работу, она возвратит это значение в вызывающую процедуру, которая сможет использовать его в дальнейших вычислениях.

Вот пример процедуры типа Function:

Public Function ДеФункция(х As Integer, y As Integer )

Dim Z AS Integer

z = x + у

ДеФункция = x ? z

End Function

Очевидно, строение процедуры типа Function очень похоже на строение процедуры типа Sub. Объявление начинается с необязательного ключевою слова, определяющего область видимости процедуры (в данном случае это Public). Далее идет ключевое слово Function, определяющее тип процедуры, за ним размещается имя процедуры и, наконец, ее аргументы. Аргументы будут обсуждаться в разделе Привлекательные аргументы, но уже на этом примере вы видите, как они используются. Подобно процедуре типа Sub, в конце процедуры типа Function находится завершающий оператор End Function.

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

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

Отличия процедур типа Function от процедур типа Sub

Между процедурами типа Function и типа Sub есть одно существенное отличие: в процедуре типа Function обязательно где-то должен присутствовать по крайней мере один оператор, задающий значение этой функции. При этом используется имя процедуры, как будто это обычная переменная. В предыдущем примере присвоение значения осуществляется в строке ДеФункция = х ? z. После того как программный код в этой строке будет выполнен, ДеФункция будет содержать значение, которое возвратится в вызывающую процедуру для дальнейшего использования там.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Адаптеры функций (Function adaptors)

Из книги Руководство по стандартной библиотеке шаблонов (STL) автора Ли Менг

Адаптеры функций (Function adaptors) Функциональные адаптеры работают только с классами функциональных объектов с определёнными типами параметров и типом


2. Процедуры и функции для переменных строкового типа

Из книги Информатика и информационные технологии: конспект лекций автора Цветкова А В

2. Процедуры и функции для переменных строкового типа 1. Function Copy(S: String; Index, Count: Integer): String; Возвращает подстроку строки. S – выражение типа String.Index и Count – выражения целого типа. Функция возвращает строку, содержащую Count символов, начинающихся с позиции Index. Если Index больше, чем


11. Строковый тип в Pascal. Процедуры и функции для переменных строкового типа

Из книги Информатика и информационные технологии автора Цветкова А В

11. Строковый тип в Pascal. Процедуры и функции для переменных строкового типа Последовательность символов определенной длины называется строкой. Переменные строкового типа определяются путем указания имени переменной, зарезервированного слова string, и возможно, но не


Реализация паттерна «Стратегия» посредством класса tr::function

Из книги Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ автора Мейерс Скотт

Реализация паттерна «Стратегия» посредством класса tr::function Если вы привыкли к шаблонам и их применению для построения неявных интерфейсов (см. правило 41), то применение указателей на функции покажется вам не слишком гибким решением. Почему вообще для вычисления


5.2.3. Синтаксис DROP PROCEDURE и DROP FUNCTION

Из книги Технология XSLT автора Валиков Алексей Николаевич

5.2.3. Синтаксис DROP PROCEDURE и DROP FUNCTION DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_nameЭта инструкция используется, чтобы удалить сохраненную процедуру или функцию. То есть определенная подпрограмма будет удалена с сервера. Начиная с MySQL 5.0.3, Вы должны иметь привилегию ALTER ROUTINE для подпрограммы. Такая


function - Создает новую функцию

Из книги VBA для чайников автора Каммингс Стив

function - Создает новую функцию functionОпределяет набор операторов, которые вы определили для выполнения определенной задачи. Вы можете декларировать (declare), или определить (define), функцию в том же месте, где вы ее вызываете, или в любом другом месте муви-клипа. При определении


Процедуры типа Sub

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

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


Элементы объявления процедуры типа Sub

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Элементы объявления процедуры типа Sub В операторе объявления процедуры первый термин Public определяет область видимости процедуры. Для области видимости можно указать либо Public, либо Private. При этом Public подразумевается по умолчанию, так что это ключевое слово можно


Отличия процедур типа Function от процедур типа Sub

Из книги автора

Отличия процедур типа Function от процедур типа Sub Между процедурами типа Function и типа Sub есть одно существенное отличие: в процедуре типа Function обязательно где-то должен присутствовать по крайней мере один оператор, задающий значение этой функции. При этом используется имя


Вызов процедур типа Function

Из книги автора

Вызов процедур типа Function Процедуру типа Function можно выполнить, только вызвав ее из другой процедуры.Как правило, это делается путем присваивания имени данной функции некоторой переменной. В следующем примере переменная ZСтепень получает значение, возвращенное


EnumObjects function EnumObjects(DC: HDC, ObjectType: Integer; ObjectFunc: TFarProc; Data:

Из книги автора

EnumObjects function EnumObjects(DC: HDC, ObjectType: Integer; ObjectFunc: TFarProc; Data: Pointer):Integer;Пеpечисляет типы объектов, возможные на устpойстве, пеpедавая функции обpатного вызова TLogPen или TLogBrush и Data. Пеpечисление заканчивается, если функция обpатного вызова возвpащает нуль или если пеpечислены все


EXTERNAL FUNCTION DIRECTORY

Из книги автора

EXTERNAL FUNCTION DIRECTORY Параметры в ibconfig EXTERNAL_FUNCTION_DIRECTORY <quoted directory string>EXTERN


Объект Function

Из книги автора

Объект Function С помощью объекта Function можно манипулировать функцией как объектом. Этот объект содержит ряд специфичных методов и свойств (табл. 11.21 и 11.22).Таблица 11.21. Свойства объекта Function Таблица 11.22. Методы объекта Function Синтаксис определения объекта Function выглядит