Листинг 17: Программный код макроса ExcelFunc ( )




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. Причем сумма вычислена корректно и размещается в ячейке под выделенным диапазоном. При этом выделение с диапазона не снимается, а в ячейку вводится число, а не формула.

 

 

 

       
 
Рис. 24. Вид документа перед выполнением макроса ExcelFunc ().
 
Рис. 25. Вид документа после выполнения макроса ExcelFunc ().  

 


Задание 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:



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: