Public Sub ExcelFunc ()
Dim S As Range
Dim i As Integer
Set S = Selection
i = S.Rows.Count
Selection.Offset(i,0).Range(“A1”).Value = Application.Sum(S)
End Sub
В макросе имеются две переменные: переменная i целочисленного типа Integer и переменная S объектного типа Range для записи в неё объекта выделенный диапазон. Именно это делается с помощью команды Set S = Selection.
Свойством Selection возвращается выделенный диапазон ячеек или активная ячейка. Инструкцией S.Rows.Count возвращается количество строк в выделенном диапазоне, и это число присваивается в качестве переменной i. Для выделения ячейки, расположенной под выделенным диапазоном, используется свойство Offset(i,0), где по строкам отступ равен i строкам от верхней левой ячейки диапазона, а по столбцам отступ равен 0. Свойством Range(“A1”) задаются через аргумент A1 размеры диапазона (одна ячейка), а значение (свойство Value) устанавливается равным сумме ячеек диапазона, записанного в переменную S. Сумма вычисляется с помощью встроенной функции Excel. Для доступа к ней указана инструкция Application.Sum(S), а аргументом функции указана переменная S (т.е. диапазон, для которого вычисляется сумма ячеек).
Для выполнения задания заполните числовыми значениями диапазон ячеек B3:C5. На рис. 24 показан документ перед запуском макроса. После запуска макроса получается результат как на рис. 25. Причем сумма вычислена корректно и размещается в ячейке под выделенным диапазоном. При этом выделение с диапазона не снимается, а в ячейку вводится число, а не формула.
|
|
Задание 6.
Использование условных операторов и операторы цикла при вычислении чисел Фибоначчи.
|
Любая более или менее серьёзная программа подразумевает использование управляющих инструкций, среди которых особое место занимают условные операторы и операторы циклов. Рассмотрим особенности применения таких операторов.
Общий принцип действия условного оператора заключается в следующем: проверяется условие, и если оно истинно - выполняется последовательность операций (цикл с предусловием). Также можно определить последовательность действий в случае если условие ложно (цикл с постусловием, выполняется до истинности условия).
Оператор цикла позволяет выполнять последовательности однотипных действий.
1) Создадим с помощью оператора цикла FOR макрос, который заполняет ячейки документа числами Фибоначчи
(по имени средневекового математика Леонардо Пизанского, известного как Фибоначчи):
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,...
Числами Фибоначчи называют последовательность натуральных чисел, первые два из которых равны 1, а каждое последующее равно сумме двух предыдущих.
Примечание 3: Оказывается, эта последовательность имеет множество интересных с точки зрения математики свойств. Вот пример: вы можете разделить линию на два сегмента, так что соотношение между большим и меньшим сегментом будет пропорционально соотношению между всей линией и большим сегментом. Этот коэффицент пропорциональности, приблизительно равный 1,618, известен как золотое сечение. В эпоху Возрождения считалось, что именно эта пропорция, соблюденная в архитектурных сооружениях, больше всего радует глаз. Если вы возьмете последовательные пары из ряда Фибоначчи и будете делить большее число из каждой пары на меньшее, ваш результат будет постепенно приближаться к золотому сечению. Другую интересную информацию о числах Фибоначчи можно найти в Интернете: https://elementy.ru/trefil/21136; https://ru.wikipedia.org и др..
|
Также, в оператор For добавим условный оператор, с помощью которого обеспечим необходимость того, чтобы числами ячейки заполнялись только в том случае, если в активную ячейку введено число большее 2. В VBA существует условный оператор If…. Then….Else, который реализует означенный алгоритм. Программный код данного макроса приведен в листинге 18: