ISS / Лабораторная работа 8
.docЛабораторная работа 8
Работа с диапазонами ячеек в MS Excel
Цель работы: научиться использовать встроенный в пакет MS Office язык программирования VBA для операций с диапазонами ячеек
Задание лабораторной работы № 8:
1. Изучить краткие сведения о работе с диапазонами ячеек на языке VBA.
2. Написать и провести тестирование программы по своему варианту.
Представляемые к защите материалы
1. Текст задачи.
2. Файл с программой на VBA.
3. Результаты тестирования программы.
Варианты заданий
Используя MS Excel создать на языке VBA модуль вычисления функции в соответствии с выбранным вариантом. Проверить работу функции на рабочем листе таблицы.
Составьте функцию, которая:
-
Вычисляет среднее арифметическое значений элементов матрицы;
-
Вычисляет среднее значение всех элементов матрицы за исключением максимального и минимального из них
-
Находит скалярное произведение двух векторов;
-
Проверяет, все ли элементы массива имеют значение больше заданной величины;
-
Вычисляет минимальный элемент массива;
-
Возвращает индекс (номер) минимального элемента вектора;
-
Вычисляет модуль вектора;
-
Определяет, являются ли элементы диапазона геометрической прогрессией, и если так – выводит коэффициент, иначе возвращает нуль.
Теоретические сведения
К отдельной ячейке рабочего листа можно получить доступ через специальный объект «Диапазон ячеек» – Range. Он представляет собой совокупность ячеек из некоторой прямоугольной области листа Excel, нескольких областей или даже из единственной ячейки таблицы.
Для пользования диапазонами нужно создать переменную типа Range. Пример:
Dim Diapazon1 As Range
В программе переменная Diapazon1 будет выступать в роли массива ячеек, у каждой из которых есть свой порядковый номер и значение (есть и другие свойства и методы, но здесь не упоминаются).
Если необходимо извлечь значение, хранящееся в конкретной ячейке диапазона, можно воспользоваться следующей командой:
a = Diapazon1.Item(1).Value ‘ значение 1-й ячейки диапазона
Ячейки в диапазоне нумеруются с единицы; при этом номер ячейки в диапазоне и адрес ячейки на рабочем листе – разные вещи (в диапазоне ячейка может быть пятой, но адрес в рабочем листе – «G8»).
Выражение Diapazon1.Count позволяет получить количество ячеекд иапазона:
n = Диапазон.Count
Ниже приведен пример функции, работающей с диапазоном ячеек. Как любая функция пользователя, она может использоваться на листе MS Excel – в ячейке листа вызывается функция, в качестве параметра которой передаются координаты диапазона ячеек. В данном случае функция ArraySum() подсчитывает сумму чисел, находящихся в выделенном диапазоне. Необходимо помнить, что для реальных приложений функцию необходимо будет дополнить блоками, проверяющими корректность введенных данных (Аргумент функции действительно диапазон? В ячейках действительно числа? И т.п.).
Public Function ArraySum(dipazon As Range) As Single
Dim i As Integer, sum As Single
sum = 0 ‘сумма элементов, для начала равна нулю
For i = 1 To dipazon.Count
sum = sum + dipazon.Item(i).Value
Next i
ArraySum = sum
End Function