Dim i As Integer, j As Integer, n As Integer, m As Integer

n = Val(InputBox("Введіть кількість рядків n"))

m = Val(InputBox("Введіть кількість стовпців m"))

For i = 1 To n

For j = 1 To m

d(i, j) = Val(InputBox("Введіть масив d"))

Next j

Next i

For j = 1 To m

sum(j) = 0

For i = 1 To n

If d(i, j) > 0 Then sum(j) = sum(j) + d(i, j)

Next i

Debug.Print sum(j)

Next j

End Sub

Приклад 6. Дана матриця З=(сij), i=1,2,...n; j=1,2,... m (n£50, m£50). Визначити для кожного рядка максимальний елемент і його індекси. (Передбачається, що в кожному рядку є єдиний максимальний елемент).

Позначення: max - максимальний елемент у рядку, jmax - номер стовпця максимального елемента.

Sub Р6()

Dim c(1 to 50, 1 to 50) As Double, max As Double

Dim i, j, n, m, jmax As Integer

n = Val(InputBox("Введіть кількість рядків n"))

m = Val(InputBox("Введіть кількість стовпців m"))

For i = 1 To n

For j = 1 To m

c(i, j) = Val(InputBox("Введіть масив c"))

Next j

Next i

For i = 1 To n

jmax = 1: max = c(i, 1)

For j = 1 To m

If c(i, j) > max Then max = c(i, j): jmax = j

Next j

Debug.Print "max= " & max & “ imax=” & i & " jmax=" & jmax

Next i

End Sub

 

Процедури

Програма може являти собою сукупність окремих блоків-підпрограм (процедур). Використання процедур дозволяє реалізувати один із самих прогресивних методів програмування - структурне програмування.

Процедури доцільно застосовувати у випадках, коли однакову послідовність дій необхідно виконувати в різних частинах програми й при різних вхідних даних. Таку послідовність дій можна виділити в самостійну програмну одиницю - процедуру, що може бути використана багаторазово в міру необхідності.

В VBA є 3 види процедур: процедура Function, процедура Sub і процедура Property. У даній роботі розглядаються тільки процедури Function і Sub.

Процедура Function

VBA містить безліч вбудованих функцій, наприклад, cos, sqr, mid, але користувач може створювати власні функції, використовуючи для цього процедуру Function.

Синтаксис поцедури Function:

[Private ½Public ½Static] Function Ім'я(Список аргументів ) [As тип ]

Блок операторів

End Function

Тут і далі (означає, що використовується один з варіантів: Private, Public або Static.

Private - означає, що процедура Function доступна для інших процедур тільки того модуля, у якому вона описана.

Public -означає, що процедура Function доступна для інших процедур у всіх модулях.

Static – означає, що локальні змінні процедуриFunction зберігаються в проміжках часу між викликами цієї процедури.

Ім'я ідентифікатор функції, що задовольняє стандартним правилам побудови імен;

Тип – тип значення, що повертається Function;

Список аргументів - список змінних, що представляють аргументи, які передаються в процедуру Function при її виклику. Аргументи в списку відділяються комами.

Структура аргументу:

[Optional] [ByVal ½ByRef] [ ParamАrray] Ім'я [As тип ]

Optional - указує, що даний аргумент є необов'язковим. Аргументи, позначені кваліфікатором Optional повинні перебувати наприкінці списку аргументів.

ByVal - означає, що аргумент передається за значенням. При цьому виключається можливість зміни значення аргументу процедури після її завершення.

ByRef аргумент передається по посиланню. Передача аргументу по посиланню дає процедурі доступ до вмісту змінної за її адресою в пам'яті. Значення змінної може бути змінене процедурою, що викликається.

За замовчуванням установлюється ByRef.

ParamАrray - позначає необов'язковий аргумент, що є масивом довільного числа змінних типу Variant. Цей аргумент може бути тільки останнім у списку аргументів. З ним не можуть використовуватися ключові слова ByVal, ByRef, Optional.

Тип - тип аргументу, може використовуватися будь-який стандартний тип даних. За замовчуванням використовується Variant.

Приклади заголовка процедури-функції:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: