Передача данных при вызове подпрограммы
End Sub
End Sub
End If
End Sub
End Sub
Примеры функций для работы с массивами
End Sub
Option Base 1
Использование массива
Пример использования массива типа Integer:
_________________________________________
Sub UsingArray()
Dim Vals(3) As Integer
Vals(1)= Int (100* Rnd())
Vals(2)= Int (100* Rnd())
Vals(3)= Int (100* Rnd())
MsgBox "Lottery numbers: " & Vals(1) & ", " & Vals(2) & "," & Vals(3)
Имеются ряд специальных функций для работы с массивами.
1. Функция Array – позволяет создавать массив в ходе выполнения программы, без предварительного описания.
Пример:
Sub CreateArray()
DataCA= Array ("Kate",43,#4/15/1962#)
MsgBox DataCA(0) & ",age" & DataCA(1) & ", born " & DataCA(2)
2. Функция Erase – используется для удаления данных, хранимых в элементах массива. Если массив фиксированного размера – очищается содержимое массива, а память, выделенная массиву, остается за ним.
Пример:
Option Base 1
_________________________________________
Sub EraseArray()
Dim EA(2) As Integer
EA(1) = Int (100 * Rnd ())
EA(2) = Int (100 * Rnd ())
|
|
MsgBox "Lottery numbers: " & EA(1) & "," & EA(2)
Erase EA
MsgBox "Lottery numbers: " & EA(1) & "," & EA(2)
3. Функция IsArray – позволяет проверить, является ли переменная массивом. Функция имеет один аргумент и возвращает True, если переменная является массивом, и False, если переменная не массив. Функция полезна, если необходимо проверить, возвращает ли вызываемая функция массив или обычную переменную.
Пример:
Sub IsArrayFunction()
Dim Arr(2) As Integer
Dim ArrayBool As Boolean
ArrayBool = IsArray (Arr)
If ArrayBool = True Then
MsgBox "Arr is an array."
4. Функции LBound и UBound – определяют верхнюю и нижнюю границы индексов элементов массива.
Пример:
Sub LBoundAndUBound()
Dim Data(4 To 15) As Integer
MsgBox "The lower bound is " & LBound (Data) & "."
MsgBox "The upper bound is " & UBound (Data) & "."
Перед вызовом функций LBound и UBound рекомендуется проверить переменную функцией IsArray.
Передача аргументов из одной программы в другую осуществляется двумя способами:
· по ссылке (by reference);
· по значению (by value).
Выбор способа передачи – с помощью ключевых слов ByRef и ByVal:
по ссылке– передается сама переменная (имя переменной), поэтому ее значение в подпрограмме можно изменить;
по значению– передается только значение переменной; изменить это значение в вызванной подпрограмме нельзя.
При отсутствии в описании ключевых слов передача осуществляется по ссылке.
Sub PassArgumentByReference()
Dim Username As String
Username = "Mike"
ChangeName Username
MsgBox Username