Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций КИТ 1 курс ГЭФ.doc
Скачиваний:
291
Добавлен:
22.02.2016
Размер:
3.32 Mб
Скачать
  1. Основы программирования на языке Visual Basic for Applications (vba). Подпрограммы-процедуры и подпрограммы-функции. Модульная структура программы.

При вызове процедуры или функции передают в них некоторые переменные путем замены формальных параметров на фактические. (Фактические параметры берутся при вызове ф-ции. Формальные параметры берутся из задач.) Внутри процедуры этим переменным может быть присвоено какое-нибудь новое значение, которое сохранится в переменной и после возврата из процедуры.

Таким образом, по умолчанию при передаче переменных в качестве параметров в процедуру передается физический адрес переменных. Поэтому внутри процедуры может быть модифицировано их содержимое. Такой способ передачи переменных называется передача по ссылке, т.е. в процедуру передается  адрес  переменной.   Другим   способом передачи переменных является передача по значению. При этом в процедуре передается не сама переменная, а ее копия. В результате в процедуру попадает только значение переменной. Передача по значению осуществляется с помощью ключевого слова ByVal. Таким   образом,   при   передаче   параметров   по значению переменные, передаваемые в процедуру или функцию, не могут быть изменены внутри процедуры, так как там происходят вычисления с их копиями. Чтобы явно указывать, как передаются параметры процедуры, можно использовать ключевые слова ByRef -  по ссылке и ByVal - по значению.

В языке VBA подпрограммы делятся на два вида: подпрограммы-функции и подпрограммы—процедуры, которые   подразделяются   на   две   группы: встроенные и определяемые пользователем.

При вызове процедуры или функции передают в них некоторые переменные путем замены формальных параметров на фактические. (Фактические параметры берутся при вызове ф-ции. Формальные параметры берутся из задач.) Внутри процедуры этим переменным может быть присвоено какое-нибудь новое значение, которое сохранится в переменной и после возврата из процедуры.

ФункцииМногократно повторяющуюся часть программы можно оформить подпрограммой - функцией.

Общий вид функции пользователя:

Function Имя_Функции(список формальных параметров) As Тип описания функции

Раздел операторов

End Function

Вызов функции. Общий вид вызова функции:

переменная = Имя Функции (фактические параметры)

Процедуры.Кроме функций пользователя, на листе модуля можно записывать процедуры. Процедура, как и функция, состоит из двух частей: описания и вызова функции.

Описание процедуры. Синтаксическая структура описания имеет следующий вид:

Sub Имя_Процедуры (список формальных параметров)

Тело процедуры

End Sub

Процедура начинается с заголовка процедуры Sub

Вызов процедуры.

Имя_Процедуры_Список фактических параметров

Список фактических параметров от имени_Процедуры записывается через пробел, и отделяются друг от друга запятой, в круглые скобки не заключаются. В отличие от функций пользователя, процедуры нельзя вызывть из ячеек рабочего листа. Функция передаёт в главную программу при её вызове только одно значение, а процедура может передавать одно или несколько значений при её вызове. Option Explicit Dim x As Integer, y As Integer, p As Integer Function F(x As Integer) As Single F = 4*x / (3-2*2) End Function Sub My_pr() Cells(1,1) = “ТАБЛИЦА” Cells(2,1) = “x” Cells(2,1) = ”y” p = 3 For x = 0 To 12 If 3 – 2*x = 0 Then GoTo M y = F(x) Cells(p, 1) = x Cells(p, 2) = y p = p + 1 M: Next x End Sub