Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум9 по Excel (пр.13%2C осн. языка VBA).docx
Скачиваний:
20
Добавлен:
06.09.2019
Размер:
2.66 Mб
Скачать

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

Public Sub CellFormula4 ( )

Range (“C3:C5”).FormulaArray = “=TAN(B3:B5)”

End Sub

Выполните данный макрос. Результат выполнения макроса представлен на рис. 22:

Рис. 22. Результат выполнения макроса CellFormula4 ( ). задание 4, п.4.

5) Во всех предыдущих случаях использовались абсолютные ссылки. На практике это не всегда бывает удобно. Формула с относительными ссылками вводится через свойство FormulaR1C1. В листинге 16 приведен код макроса, которым в активную ячейку вводится формула, согласно которой значение ячейки вычисляется как единица, деленная на сумму единицы и значения соседней ячейки слева вверху от активной.

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

Public Sub CellFormula5 ( )

ActiveCell.FormulaR1C1 = “=1/(1+R[-1]C[-1])”

End Sub

Выполните самостоятельно данный макрос. Результат выполнения макроса CellFormula5 представлен на рис. 23:

Рис. 23. Результат выполнения макроса CellFormula5 ( ). задание 4, п.5.

Относительная ссылка на ячейку вводится в формате R1C1. Перед запуском активной была ячейка С6. После выполнения макроса в эту ячейку введена формула = 1/(1+B5). Для ввода формул с относительными ссылками с русскоязычным синтаксисом используют свойство FormulaR1C1Local.

Задание 5.

Использование встроенных функций Excel.

В VBA достаточно много встроенных функций, однако достаточно эффективно можно использовать и встроенные функции Excel. В этом случае, функции Excel выступают в качестве методов объекта Application. Причем в русскоязычной версии приложения Excel в коде VBA указываются англоязычные названия функций. Рассмотрим соответствующий пример.

1) Создайте макрос, который вычисляет сумму значений ячеек диапазона, выделенного на момент запуска макроса. Для вычисления суммы значений ячеек воспользуйтесь встроенной функцией Excel СУММ ( ) (англоязычный вариант - функция SUM ( )). Назовем этот макрос ExcelFunc ( ). Программный код макроса приведен в листинге 17:

Листинг 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 ( ).