- •Р ис. 1. Вкладка Разработчик содержит интерфейс для запуска и записи макросов.
- •Важная информация о безопасности макросов.
- •Для этого:
- •Листинг 2: Программный код макроса RangeSelect2 ( )
- •Листинг 7: Программный код макроса SetValue3 ( )
- •Л истинг 8: Программный код макроса SetValue4 ( )
- •3) Следующий макрос Formats3 ( ) (см. Листинг 11) имеет более сложный программный код, нежели Formats2.
- •Листинг 11: Программный код макроса Formats3 ( )
- •Листинг 15: Программный код макроса CellFormula4 ( )
- •Задание 6.
- •Листинг 18: Программный код макроса Fibon ( )
- •Листинг 19: Программный код макроса Fibon2 ( )
3) Следующий макрос Formats3 ( ) (см. Листинг 11) имеет более сложный программный код, нежели Formats2.
Листинг 11: Программный код макроса Formats3 ( )
Public Sub Formats3 ( )
With Selection
.ColumnWidth = . ColumnWidth*1.5
.RowHeight = .RowHeight + 2
End With
With Selection.Font
.Color = RGB (0,0,255)
.FontStyle = “Bold Italic”
Selection.Value = .Name & “ “ & .Size
End With
End Sub
Во-первых, данным макросом изменяются ширина и высота ячеек выделенного диапазона. Ширина ячеек увеличивается в 1,5 раза с помощью команды .ColumnWidth = . ColumnWidth*1.5 (внутри блока With Selection). Высота ячеек увеличивается на 2 позиции (команда .RowHeight = .RowHeight + 2 внутри того же блока With Selection). Во-вторых, в блоке With Selection.Font задаются некоторые настройки шрифта. В частности, использованием функции RGB ( ) задается синий цвет шрифта. Функция RGB ( ) генерирует цвет в формате RGB (RGB – сокращение от Red – Green – Blue, т.е. красный – синий - зеленый). Установлен стиль шрифта полужирный курсив, с помощью команды .FontStyle = “Bold Italic”. Значения ячеек формируются объединением названия шрифта (свойство Name), пробела и размера шрифта (свойство Size). Используется оператор объединения текстовых строк &. Пробел, заключенный в кавычки, необходим для того, чтобы между названием шрифта и размером оставался отступ.
Д ля проверки правильности работы макроса выделите диапазон ячеек B3:D5, присвойте им шрифт Arial, размер шрифта 11 пт. и запустите макрос на выполнение. Результат выполнения работы макроса Formats3 ( ) представлен на рис. 18:
Рис. 18. Результат выполнения макроса Formats3 ( ), задание 3, п.3.
В результате, кроме появившегося текста в ячейках, увеличилась ширина ячеек и высота. При этом если при том же выделенном диапазоне запустить макрос на выполнение ещё раз, то ширина и высота ячеек ещё увеличатся.
Задание 4.
Ввод программными методами формул в ячейки.
1) Часто возникает ситуация, когда необходимо внести в ячейку документа формулу, а не просто некоторое значение. В Excel это довольно простая задача. Её решение подразумевает обращение к свойству Formula объекта Range. Например, для ввода в ячейку B3 формулы = А3^2, используем в программном коде инструкцию Range (“B3”). Formula = “=A3^2”. Эта команда формирует программный код макроса CellFormula ( ), представленного в листинге 12:
Листинг 12: Программный код макроса CellFormula ( )
Public Sub CellFormula ( )
Range (“B3”).Formula = “=A3^2”
End Sub
Для проверки работы макроса введите в ячейку А3 значение 5, после чего запустите макрос CellFormula ( ). Результат выполнения макроса представлен на рис. 19:
Рис. 19. Результат выполнения макроса CellFormula ( ). задание 4, п.1.
2) Аналогично ячейки заполняются формулами с встроенными функциями Excel. Например, командой Range (“B4”).Formula = “=SIN(A4)” в ячейку B4 вводится формула =SIN(A4). Код соответствующего макроса приводится в листинге 13:
Листинг 13: Программный код макроса CellFormula2 ( )
Public Sub CellFormula2 ( )
Range (“B4”).Formula = “=SIN(A4)”
End Sub
Выполните самостоятельно макрос CellFormula2 ( ). Результат выполнения макроса приведен на рис. 20:
Рис. 20. Результат выполнения макроса CellFormula2 ( ). задание 4, п.2.
3) Проблемы возникают, когда приходится вводить формулы с русскоязычным синтаксисом. С первого раза такие формулы программными методами не обрабатываются корректно. Поэтому приходится выделять ячейку и нажимать клавишу Enter. Проблема решается, если вместо свойства Formula воспользоваться свойством FormulaLocal. Пример макроса, в котором реализуется данный принцип, приведен в листинге 14:
Листинг 14: Программный код макроса CellFormula3 ( )
Public Sub CellFormula2 ( )
Range (“B5”).FormulaLocal = “=СУММ(A3:B4)”
End Sub
Данный макрос вставляет функцию вычисления суммы ячеек A3:B4. Проверьте самостоятельно работу данного макроса. Результат выполнения макроса приведен на рис. 21:
Рис. 21. Результат выполнения макроса CellFormula3 ( ). задание 4, п.3.
4) Существует возможность вводить формулы массива. Для этого используется свойство FormulaArray. Этому свойству в качестве значения присваивается формула, однако вводится она системой в формате формулы массива. Пример простого макроса для ввода формулы массива приводится в листинге 15: