- •Основы языка Visual Basic for Applications Введение
- •Стандартные модули и модули класса
- •Окно редактора кода vbe
- •Раздел описания
- •Отображение модулей
- •Создание процедуры
- •Основные операторы vba Переменные и оператор присваивания
- •Редактирование в окне модуля
- •Аргументы процедуры
- •‘Пересчет цены в рублях в цену в долларах’
- •Типы данных
- •Математические функции и операторы
- •Логические операторы
- •Ввод данных
- •Вывод данных
- •Условные операторы
- •Операторы цикла
- •Процедура-функция для обработки событий в формах
- •Применение процедур-подпрограмм
- •Выполнение кода vba
- •Инициализация кода
Применение процедур-подпрограмм
При создании модулей наряду с процедурами-функциями широко применяются подпрограммы. На языке VBA подпрограммы называют процедурами-подпрограммами и обозначают ключевым словом Sub. В отличие от процедур-функций (функций) процедуры-подпрограммы (подпрограммы), выполняя свои задачи, могут не возвращать результирующие значения. Подпрограмму можно запускать из других процедур, но ее нельзя вызвать так, как функцию, указав имя в выражении или операторе.
Рассмотренная функция Рубли_в_доллары может быть оформлена как подпрограмма, поскольку в ней не формируется возвращаемое значение.
Оформим вычислительную часть процедуры Рубли_в_доллары как подпрограмму Вычисление и вызовем ее в функции Рубли _в_доллары. Начнем с создания подпрограммы:
• Откройте модуль Прейскурантные расчеты в режиме конструктора.
• Выберите в меню Вид Microsoft Access команду Программа, а затем в окне редактора выберите в меню Insert команду Procedure.
• В открывшемся окне активизируйте переключатель Sub, введите имя Вычисление и нажмите кнопку ОК.
Итак, в модуль включена новая процедура. Access автоматически вводит в окно модуля начальную и конечную строки подпрограммы. Ключевое слово Sub указывает на то, что речь идет о подпрограмме:
Public Sub Вычисление () End Sub
Далее необходимо через буфер обмена скопировать операторы из функции Рубли_в_доллары в создаваемую подпрограмму.
Определение и вызов подпрограммы
Теперь выражение для пересчета цен определено как подпрограмма, которая может быть вызвана из любой процедуры базы данных. Вызов подпрограммы осуществляется посредством оператора вызова, в котором указывается имя подпрограммы (скобки в данном случае не ставятся).
Выполнение кода vba
Код VBA (последовательность операторов) выполняется при вызове функции или подпрограммы. Во время вычисления выражения, в котором использована функция, выполняется код этой функции. Кроме того, код можно выполнить:
— вызывая функцию, связанную с некоторым событием, например Оп-Print( Печать),
— вызывая функцию с помощью макрокоманды ЗапускПрограммы;
— вызывая функцию или подпрограмму в окне Immediate.
Если подпрограмму необходимо связать с событием или вызвать с помощью макрокоманды ЗапускПрограммы, следует оформить ее как функцию или построить дополнительные функции вызова подпрограммы.
Инициализация кода
В Access существуют следующие способы запуска программ Visual Basic
— Создание процедуры обработки события. Процедура обработки co6ытия выполняется при выполнении пользователем действия, которое вызывает событие. Например, программу, выполняющуюся при открытии формы или отчета, включают в процедуру обработки события Click (Нажатие кнопки) для кнопки, при нажатии которой будет открываться эта форма или отчет.
— Функция в выражении. Вызов функции в выражении или в окне проверки редактора Visual Basic. Например, функции применяются в выражениях, определяющих вычисляемые поля в формах, отчетах или запросах. Выражения используются для указания условий в запросах и фильтрах, а также в макросах и макрокомандах, в инструкциях и методах Visual Basic и в инструкциях SQL
— Вызов процедуры в другой процедуре или в окне проверки редактора Visual Basic. Если некоторая программа выполняется часто, можно поместить ее в процедуру Sub. Это позволяет не повторять программу Visual Basiс выполняющую нужную операцию, в каждой процедуре, а написать ее один раз в общей процедуре, и затем выполнять эту общую процедуру каждый раз, когда требуется выполнить данную операцию
— Запуск в редакторе VBA. Выбор команды Run Sub/UserForm в меню Run редактора Visual Basic для запуска процедуры без аргументов. В окне программы поместите курсор в процедуру, которую требуется выполнить а затем выберите команду Run Sub/UserForm из меню Run.
— Макрокоманда ЗапускПрограммы в макросе. Макрокоманда ЗапускПрограммы, выполняемая в макросе, вызывает встроенную функцию Visual Basic или функцию, созданную пользователем. Для запуска процедуры
Sub или процедуры обработки события следует создать функцию, которая вызывает процедуру Sub или процедуру обработки события, и с помощью макрокоманды ЗапускПрограммы вызвать эту функцию.
Порядок выполнения работы:
Задание 1.
Открыть базу данных «Торговля».
Выбрать объект базы данных – Модуль. Нажать кнопку Создать.
В меню Вставка(Insert) выбрать – Процедура(Procedure). Указать имя(Name) процедуры и тип(Type) вставляемого элемента (функция-Function или программа-Sub). Указать общая (Public) — процедура доступна для всех процедур во всех модулях или личная (Private) — процедура доступна для других процедур только в том модуле, в котором она объявлена.
Объявить переменные a,b,c – целого типа: dim a,b,c as integer
Ввести переменные a,b: a=2 b=500 или a=InputBox(«Введите а»,»Ввод данных») b= InputBox(«Введите b»,»Ввод данных»)
Вычислите с и выведите результат: c=a*b MsgBox "Результат c = " & c
Сохраните модуль, выбрав в пункте меню File пункт Save БдТорговля
Для выполнения модуля выберите в пункте меню Run команду Run Sub.
Если необходимо отредактировать модуль, откройте его в режиме Конструктора и отредактируйте.
Задание 2.
Выполнить индивидуальное задание, выбрав в таблице 1 вариант в соответствии с номером студента в журнале. Для исходных данных создать два модуля( в первом модуле ввод данных выполнить с помощью оператора присваивания , во втором модуле ввод данных выполнить с использованием функции InputBox).
Таблица 1
Вариант |
Значения переменных |
Формула |
1 |
x = 3.981 y = 1.625 c = 0.512 |
|
2 |
x = -6.251 a = 0.827 z = 25.001 |
|
3 |
x = 3.251 y = 3.325 z = 0.466 |
|
4 |
x = 0.622 y = 3.325 z = 5.541 |
|
5 |
x = 17.421 b = 10.365 z = 0.828 |
|
6 |
x = 2.444 y = 0.869 z = -0.166 |
|
7 |
x = 0.335 y = 0.025 z = 32.005 |
|
8 |
x = 3.258 r = 4.005 z = -0.666 |
|
9 |
x = 0.100 y = -8.750 z = 0.765 |
|
10 |
x = 1.542 a = 3.261 z = 8.005 |
|
11 |
x = 1.426 a = -1.220 p = 3.500 |
|
12 |
x = -4.500 y = 0.750 z = 0.845 |
|
13 |
a = 3.741 x = 0.825 z = 5.160 |
|
14 |
x = 0.400 a = 2.875 f = -0.475 |
|
15 |
t = 0.750 a = 0.845 m = 2.5 |
|
16 |
x = -15.24 a = 5.642 b = 20.001 |
|
17 |
x = 3.258
|
|
18 |
x = -6.251 b = 0.827 a = 25.001 |
|
19 |
x = 0.100 y = -8.750 z = 0.765 |
|
20 |
x = -6.251 y = 0.827 z = 25.001 |
|
21 |
x = 3.251 y = 3.325 z = 0.466 |
|
22 |
x = -0.622 y = 3.325 z = 5.541 |
|
23 |
x = 17.421
|
|
24 |
x = 2.444 a = 0.869 y = 0.166 |
|
25 |
x = 0.335 y = 0.025 g = 32.005 |
|
26 |
x = 3.258 y = 4.005 z = -0.666 |
|
27 |
x = 0.100 y = -8.750 z = 0.765 |
|
28 |
x = 1.542 r = 3.261 z = 6.015 |
|
29 |
x = -15.246 y = 4.642 z = 2.001 |
|
30 |
x = 1.876 c = 3.231 b = 5.865 |
|
31 |
a = 2.876 f = 1.345 z = 2.946 |
|
32 |
x = 5.754 z = 4.763 a = 1.007 |
|
33 |
x = 2.873 y = 0.987 z = 2.534 |
|

b=4.005