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

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 – сокращение от RedGreenBlue, т.е. красный – синий - зеленый). Установлен стиль шрифта полужирный курсив, с помощью команды .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: