Public Function fun(x, y)
f = (x +y) / (x+ y)
End Function
Пример 2: (разветвляющийся алгоритм)
Для функции
2x2 - 4x + 5 , х<-1
y= 10sin(x2) + 5cos(x), -1<=x<=1
ex – 17 , x>1
процедура - функции будет выглядеть следующим образом:
Public Function Y(x)
If x <-1 Then
y = 2 * x ^ 2 - 4 * x + 5
ElseIf x <= 1 Then
y = 10 * Sin(x ^ 2) + 5 * Cos(x)
Else
y = Exp(x) - 17
End If
End Function
Пример 3: (циклический алгоритм)
процедуры-функции для табулирования функции y(x) на [a; b] с шагом h = (b - a) / n
Public Function TbF(a, b, n)
ReDim xy(n, 1)
' xy - массив из двух столбцов
' xy(i,0) - столбец значений х
' xy(i,1) - столбец значений y
h = (b - a) / n : x=a
For i = 0 To n
xy(i, 0) = x
xy(i, 1) = y(x)
x = x + h
Next i
TbF = xy
End Function
Замечание1: функцию с атрибутом Public можно использовать в любом модуле, a Private - только в данном модуле
Замечание2. При задании функции нескольких переменных в процедуре VBA аргументы разделяются запятыми, а при вызове этой функции, задаваемом при записи в ячейке соответствующей формулы аргументы разделяются символом; (точка с запятой).
Теперь, если вызвать мастер функций, то появляется дополнительная категория функций Определенные пользователем в которой появится созданная функция, а также имя функции будет видно в полном алфавитном перечне. Это означает, что созданной функцией можно пользоваться наравне с обычными встроенными функциями рабочего листа.
Обсудим вопрос о том, как можно осуществить ввод данных с рабочего листа и их вывод на рабочий лист. Для этого в Excel есть специальная конструкция:
Cells(i, j).Value
Эта конструкция позволяет получить доступ к ячейке на пересечении строки номер i и столбца номер j на активном рабочем листе (обратите внимание, что номер столбца, как и номер строки, задается числом). С ее помощью можно, как читать данные с листа, так и вывести их на рабочий лист.
Примеры:
Выражение | Пояснение |
Cells(1,1).Value = 5 | В ячейку A1 записывается число 5. Эту операция можно рассматривать как операцию вывода на рабочий лист |
Beta=Cells(3,5).Value | Переменной Beta присваивается значение из ячейки E3. Эту операция можно рассматривать как операцию ввода с рабочего листа |
Cells(1,2).Value=Cells(4,3).Value | В ячейку B1 копируется значение ячейки C4 |
Обычный (привычный) адрес ячейки можно задавать в другой конструкции Excel:
Range("<адрес ячейки>").Value
Будем считать, что значение Х находится в ячейке B3. Для размещения результата работы программы отведем ячейку D3.
Тогда текст программы может быть таким:
Дата добавления: 2015-12-22; просмотров: 1059;