![]() ![]() колонтитул в word 2007, 0000002111
Функции-процедуры VBA.Функция-процедура - это особый вид процедуры VBA, возвращающей ре- зультат. Пользовательские функции-процедуры, как и встроенные функции VBA, могут иметь необязательные и именованные аргументы. Для записи функции-процедуры нельзя использо- вать макрорекордер, хотя можно редактировать записанный рекордером макрос и превращать его в функцию-процедуру. Основное различие между функцией-процедурой и другими процедурами, помимо того, что функции возвращают значение, а процедуры - нет, состоит в том, что в функции-процедуре используются ключевые слова Function и End Function. Синтаксис: Function Name([Arglist]) [As Type] 'VBA Statements [Name = expression] End Function Function - ключевое слово, объявляющее начало функции. Name - имя функции. Имена функций следуют тем же правилам, что и имена других идентификаторов VBA. Arglist - список аргументов данной функции, необязательный элемент. Type - любой тип возвращаемого значения функции. Если тип не определен, результат, который возвращает функция-процедура, имеет тип Variant. Name = expression - присваивание функции, которое указывает VBA, какое значение должна возвращать функция, необязательный элемент. Тем не менее, всегда следует включать оператор присваивания в функции-процедуры. End Function - ключевые слова, заканчивающие функцию. Даже если функция не имеет аргументов (например, Now, Date) в объявлении функции необходимо использовать круглые скобки. Обычно функция предназначается для выполнения вычисления и для возвращения результата. При объявлении функции-процедуры указывается имя каждого аргумента, передаваемого функции. Имена аргументов в списке отделяются друг от друга запятой и должны следовать правилам, применяемым к любому идентификатору VBA. Ниже представлен листинг использования простейшей функции-процедуры, которая убирает начальные и конечные пробелы и подсчитывает количество символов в выражении. ![]() Без использования функции листинг бы выглядел так: ![]() Из этого простого примера, думаю, понятна основная идея использования функций-процедур - улучшение читабельности программного кода и его сокращение (другими словами, функция-процедура пишется когда в программном коде более 2-3 раз встречается один и тот же "кусок" кода). Действительно, если бы наша функция-процедура состояла не из одной строки, а, скажем, из 10 строк; и программный код использовал бы эту функцию-процедуру 5 раз, то общий листинг программы был бы меньше на 38 строк. Как уже указывалось ранее, VBA передает все аргументы в функцию-процедуру как типы Variant. Можно объявлять определенные типы данных для каждого аргумента в списке аргументов. ![]() Аргументы с определенными типами используются по тем же знакомым причинам, по каким используются типизированные переменные или результаты функции. Определение типов аргументов для функции-процедуры также помогает пользователю при вызове функции вводить аргументы правильного типа в правильном порядке.
|
![]() |
20.04.2014г. |
![]() |
11.01.2013г. |
![]() |
01.10.2013г. |
![]() |
26.01.2013г. |
![]() |
01.12.2012г. |
![]() |
08.04.2013г. |
![]() |
25.02.2013г. |
Во многих статьях беконечно повторяется утверждение, что тренды на рынке форекс встречаются чаще, чем на других рынках. Корни этого взгляда на природу рынку форекс восходят к 1970-80-м годам прошлого века, когда только началась торговля валютными фьючерсами, и многие валюты действительно формировали значительные тренды. Но соответствует ли это утверждение действительности сегодня? В отличае от фондовых площадок, на валютной бирже торговля не прекращается в течение 24 часов в сутки, и поэтому, позволяет трейдерам извлекать прибыль от торговых операций внезависимости от часовых поясов и их местонахождения. В связи с этим, всегда можно воспользоваться услугами брокеров находящихся в различных по удаленности друг от друга торговых центров, таких как Лондон, Нью-Йорк, Токио и предоставляющих возможность открывать любые сделки. |