- •Понятие процедур, функций, операторов, переменных
- •Переменные
- •Принципы и правила выбора имен для переменных
- •Типы переменных (данных)
- •Числовой тип
- •Строковый тип (текстовая строка)
- •Тип Date (дата)
- •Логический тип
- •Произвольный тип
- •Объектный тип
- •Создание переменных
- •Объявление переменной (variable declaration)
- •Требование явного объявления переменных. Область действия переменных. Константы. Правила написания констант. Операции и знаки операций Требование явного объявления переменных
- •Присваивание переменной (assigning the variable)
- •Область действия или видимости (scope - скауп) переменных
- •Использование переменных с одним и тем же именем в различных уровнях области действия
- •Правила того, как долго переменные удерживают свое значение
- •Константы
- •Создание именованных констант
- •Область действия констант
- •Написание констант
- •Операции и знаки операций
- •Получение приоритета:
- •Преобразование типов данных. Процедуры и функции. Типы операторов. Состав проекта Назначение типов данных
- •Преобразование типов данных
- •Преобразование числовых типов данных
- •Строковые переменные
- •Строки изменяемой и фиксированной длины
- •Преобразование числовых данных в строковые
- •Форматирование данных
- •Процедуры и функции
- •Аргументы
- •Примеры процедур
- •Функции
- •Обзор типов операторов
- •Операторы объявления
- •Операторы присваивания (инициализации)
- •Выполняемые операторы
- •Параметры компилятора
- •Состав проекта
- •Массивы. Классы объектов. Характеристики объектов. Объектная модель. Окно просмотра объекта. Комментарии. Управление потоком Массивы
- •Статические массивы
- •Динамические массивы
- •Пример работы с массивом
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Инкапсуляция
- •Семейства объектов
- •Объектная модель
- •Использование Окна просмотра объектов
- •Замечания о комментариях
- •Управление потоком
- •Управление потоком (продолжение). Условные переходы. Циклы. Оператор With. Немедленный выход с помощью оператора Exit For Оператор Go to Примеры работы с двоичной логикой
- •Операторы условного перехода:
- •Оператор условного перехода If…Then
- •Пример использования условного перехода If…Then
- •Оператор условного перехода If…ElseIf
- •Оператор Select Case
- •Операторы циклов:
- •Повторение под управлением цикла For…Next
- •Пример вложенных циклов For…Next
- •Важные замечания по поводу циклов For…Next
- •Использование оператора цикла For Each… Next
- •Циклы Do…Loop
- •Типы оператора цикла Do…Loop
- •Пример оператора Do While (условие) Loop
- •Использование оператора Do …Until Loop (условие)
- •Использование оператора With
- •Использование оператора Is
- •Немедленный выход с помощью оператора Exit For
- •Управление потоком с помощью оператора Go To
- •«Ввод-вывод данных. Системные функции InputBox и MsgBox» Функции InputBox и MsgBox
Процедуры и функции
Собственно процедура – это подпрограмма. Она начинается оператором Sub и заканчивается оператором End. Подпрограммы могут вызываться или самим VB, или другими процедурами.
Макрос VBA – это процедура типа Sub, не имеющая аргументов. Это единственный класс процедур типа Sub, способных выполняться непосредственно путем вызова по имени либо из редактора, либо из приложения.
В пустые скобки в заголовке процедуры могут быть помещены аргументы.
Аргументы
В процедурах и функциях вместо переменных можно применять аргументы. Аргументы упрощают процедуру использования процедур и восприятие программного кода:
-
аргументы помогают при создании программного кода уменьшить число объявляемых переменных;
-
при чтении кода аргументы ясно указывают, какие значения требуются процедуре от других частей программы для выполнения работы.
При вызове процедуры с аргументами программа Visual Basic заставляет определить значения для этих аргументов.
Использование аргументов в процедурах событий можно проиллюстрировать примером события MouseMove (движения манипулятора "мышь").
Для обеспечения перемещения мыши процедура будет выглядеть так:
Private Sub Command1_ MouseMove (Button As Integer, X As Single, Y As Single)
…………………… (операторы)………
End Sub
Как видно, передаются 3 аргумента: состояние кнопок, координаты X и Y.
Примеры процедур
Рассмотрим пример - процедуру приветствия (вывод приветствия на экран):
Sub Привет( )
Print "Здравствуйте, я – ваша тетя!"
End Sub
Вызов процедуры осуществляется по её имени (Привет), например нажатием кнопки:
Private Sub Command1_Click( )
Привет
End Sub
Если нужно оперативно изменять информацию, то в процедуре можно использовать задание аргументов, например:
Sub Привет1(Msg1, Msg2 As String)
Print "Друзья!" & Msg1; Msg2
End Sub
Имена аргументов в заголовке процедуры отделяются друг от друга запятой, а в операторе – точкой с запятой. Со строковыми данными имена аргументов соединяется знаком конкатенации (амперсандом).
Для вызова данной процедуры (Привет1) используется другая процедура (например, процедура нажатия кнопки). При этом информация, содержащаяся в объявленных аргументах, вводится в код с заключением ее в кавычки.
Данные, содержащиеся в объявленных в процедуре Привет1 аргументах Msg1, Msg2, отделяются друг от друга запятой:
Private Sub Command1_Click()
Привет1 " прекрасен", " наш союз..."
End Sub
Функции
Процедуры (Sub) используются для обработки данных и возврата значений каких-либо переменных, и этим похожи на функции, за исключением того, что они не возвращают значения, ассоциированного с их именем.
То-есть, процедура типа "Функция" (Function) возвращает результат вычислений под её именем в алгебраической форме.
Функция может иметь аргументы с объявляемым типом данных и сопровождается также заданием типа данных возвращаемого (т. е., вычисленного) значения. Например, функция вычисления налога на добавленную стоимость:
Function НДС(Стоимость As Currency, Процент As Single) As Currency
НДС = Стоимость * Процент
End Function
За скобками аргументов указывается тип данных результата вычислений.
Таким образом, имя функции (НДС) можно рассматривать как переменную, объявление которой осуществляется оператором Function.
Вызов функции отличается от вызова процедуры:
Private Sub Command1_Click( )
Dim Tax As Currency
Tax= НДС(100, 0.2)
Print Tax
End Sub
Как видно, при вызове функции аргументы указываются в скобках, т. е., функция вызывается следующим образом:
Возвращаемое значение = Функция (Аргумент1, Аргумент2, …)
В отличие от функции, при вызове процедуры, аргументы не берутся в скобки, а заключаются в кавычки:
Процедура Аргумент1, Аргумент2, …
Как, в частности, в вышеприводимом примере:
Привет1 " прекрасен", " наш союз..."
При этом возвращаемое значение отсутствует.