ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Процедуры и функции. Function <имя_функции> (<список-формальных_параметров>) As <тип_результата>
Заголовок функции: Function <имя_функции> (<список-формальных_параметров>) As <тип_результата>
Конец текста функции обозначает оператор End Function Результат присваивается переменной <имя_функции>. Заголовок процедуры: Sub <имя_процедуры> (<список-формальных_параметров>) … End Sub Параметры передаются: ByVal – по значению ByRef – по ссылке. Если способ передачи не указан, то считается ByRef. Массивы всегда передаются по ссылке. Вызов процедуры осуществляется с помощью управляющего слова Call.
Пример программы для работы с двумерным массивом
На рисунке представлена таблица с заданными числами (6 строк, 5 столбцов). Программа вычисляет значение максимального элемента (Function) и находит индексы минимального элемента массива (Sub). Основной макрос получает из таблицы значения элементов двумерного массива, вызывает процедуру и функцию и выводит результаты в таблицу, окрашивая при этом результирующие ячейки розовым цветом. Sub main() Dim A(1 To 10, 1 To 10) As Single Dim n As Integer, m As Integer Dim i As Integer, j As Integer Dim Index1 As Integer, Index2 As Integer Dim Max As Single
n = 6 m = 5 ‘ Ввод массива For i = 1 To n For j = 1 To m A(i, j) = Cells(i + 2, j + 1) Next j Next i ‘ Вызов процедуры Call Index_Min(n, m, A, Index1, Index2) ‘ Выделение ячейки с минимальным значением Cells(Index1 + 2, Index2 + 1).Select With Selection.Interior .ColorIndex = 38 .Pattern = xlSolid End With ‘ Вызов функции Max = Max_Item(n, m, A) ‘ Вывод результата Cells(11, 6) = Max Cells(11, 6).Select With Selection.Interior .ColorIndex = 38 .Pattern = xlSolid End With End Sub
Function Max_Item(ByVal n As Integer, ByVal m As Integer, _ ByRef X() As Single) As Single Dim Max As Single Max = X(1, 1) For i = 1 To n For j = 1 To m If X(i, j) > Max Then Max = X(i, j) Next j Next i Max_Item = Max End Function
Sub Index_Min(ByVal n As Integer, ByVal m As Integer, _ ByRef X() As Single, ByRef Ind1 As Integer, _ ByRef Ind2 As Integer)
Ind1 = 1 Ind2 = 1 For i = 1 To n For j = 1 To m If X(i, j) < X(Ind1, Ind2) Then Ind1 = i Ind2 = j End If Next j Next i End Sub
Не нашли, что искали? Воспользуйтесь поиском:
|