Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие VBA.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
693.25 Кб
Скачать

Лабораторная работа n3 Создание функций пользователя с циклической структурой алгоритма и накоплением суммы (произведения)

Рассмотрим пример решения задачи по разработке алгоритма и составления функции пользователя на VBA в MS Excel с циклической структурой алгоритма и накоплением суммы:

Вычислить сумму положительных элементов в одномерном массиве размера n.

Введем обозначения переменных, используемых при решении задачи:

Х – одномерный массив размера n,

n – количество элементов в массиве,

i – номер очередного элемента,

SP – сумма положительных элементов массива.

Составим блок-схему алгоритма.

Примечание:

При программировании на VBA в MS Excel значения элементов массива можно предварительно записать в ячейки ЭТ, расположенные подряд в одной из строк ЭТ. Тогда, так же как в задачах из лабораторных работ N1-2 в теле функции будут отсутствовать операторы ввода/вывода. Достаточно будет в качестве аргумента функции (при ее вызове) указать адрес блока ЭТ, в котором записаны эти значения. Конечный результат (сумма положительных элементов) будет возвращаться по имени функции SP при ее вызове.

Количество элементов массива может быть определено с помощью функции Count, которая может подсчитать количество ячеек в заданном блоке, столбце или строке. Count с атрибутом Columns будет подсчитываться количество столбцов (ячеек) в блоке-строке. Count с атрибутом Rows будет подсчитывать количество строк (ячеек) в блоке-столбце.

Если элементы массива записаны в одну строку, то следует использовать Count.Columns. Если элементы массива записаны в столбец, то следует использовать Count.Rows. Если элементы будут записаны в произвольный блок ЭТ, тогда нужно использовать функцию Count с атрибутом Cells (будет подсчитываться количество ячеек в блоке). В решаемом примере предполагается, что значения элементов массива записаны в произвольной строке ЭТ.

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

Function SP(X As Variant) As Double

Dim i, n As Integer

n = X.Columns.Count

SP = 0

For i = 1 To n

If X(i) > 0 Then SP = SP+X(i)

Next i

End Function

Практическое задание

1. Составить блок-схему алгоритма и записать функцию на VBA для решения следующей задачи:

Вычислить произведение отрицательных элементов в одномерном массиве размера n.

2. Запустить MS Excel на ПК.

3. Открыть редактор VBA с помощью команды Сервис → Макрос→ Редактор Visual Basic.

4. В редакторе VBA открыть окно модуля для записи программного кода (текста составленных функций) с помощью команды InsertModule (Вставка→Модуль).

5. В окне модуля набрать текст составленной функций, а также функции рассмотренной в качестве примера.

6. Перейти в окно ЭТ через кнопку на Панели Задач.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]