- •Р ис. 1. Вкладка Разработчик содержит интерфейс для запуска и записи макросов.
- •Важная информация о безопасности макросов.
- •Для этого:
- •Листинг 2: Программный код макроса RangeSelect2 ( )
- •Листинг 7: Программный код макроса SetValue3 ( )
- •Л истинг 8: Программный код макроса SetValue4 ( )
- •3) Следующий макрос Formats3 ( ) (см. Листинг 11) имеет более сложный программный код, нежели Formats2.
- •Листинг 11: Программный код макроса Formats3 ( )
- •Листинг 15: Программный код макроса CellFormula4 ( )
- •Задание 6.
- •Листинг 18: Программный код макроса Fibon ( )
- •Листинг 19: Программный код макроса Fibon2 ( )
Листинг 2: Программный код макроса RangeSelect2 ( )
Sub RangeSelect2 ( )
Worksheets (“Лист 2”).Select
Range (“A1:C6”).Select
End Sub
Выполните команду Insert Module, и во вновь открывшемся окне введите код макроса RangeSelect2 ( ). Далее выполните запуск этого макроса с помощью команды: Разработчик → Код → Макросы аналогично п. 4. Результат выполнения макроса RangeSelect2 ( ) представлен на рис. 8:
Рис. 8. Результат выполнения макроса RangeSelect2 ( ), задание 1, п. 5.
6) Достаточно легко выделяются области, состоящие из нескольких диапазонов. В этом случае аргументом свойства Range указываются разделенные запятыми выделяемые диапазоны. Код макроса RangeSelect3 ( ) приведен в листинге 3:
Листинг 3: Программный код макроса RangeSelect3 ( )
Sub RangeSelect3 ( )
Range (“A1:C6, E4:G8”).Select
E nd Sub
Рис. 9. Результат выполнения макроса RangeSelect3 ( ), задание 1, п. 6.
В результате выполнения команды Range (“A1:C6, E4:G8”).Select в коде макроса выделяются сразу два диапазона ячеек: А1:С6 и Е4:G8.
7) Кроме того, можно выделять целые строки или столбцы. Пример макроса, который выполняет данные действие, приведен в листинге 4:
Листинг 4: Программный код макроса RangeSelect4 ( )
Sub RangeSelect4 ( )
Range (“3:5, C:G”).Select
End Sub
Выполните макрос RangeSelect4 ( ), приведенный в листинге 4. Обратите внимание, что аргументами свойства Range указаны диапазоны 3:5 (строки с 3-й по 5-ю) и C:G и (столбцы в диапазоне букв от C до G включительно). После выполнения макроса получится результат как на рис. 10:
Рис. 11. Результат выполнения макроса RangeSelect4 ( ), задание 1, п. 7.
Задание 2.
Изменение значений ячеек.
Изменение значений ячеек в любом документе программными методами является эффективным и элегантным инструментом работы с Excel. Доступ к значению ячейки или диапазона может быть получен через свойство Value.
1) Для начала рассмотри простой макрос, работа которого будет состоять в том, что значение активной на момент запуска макроса ячейки будет устанавливаться равным 1 (единице). Программный код макроса SetValue ( ) приведен в листинге 5:
Листинг 5: Программный код макроса SetValue ( )
Public Sub SetValue( )
ActiveCell.Value=1
End Sub
Код макроса состоит всего из одной команды ActiveCell.Value=1, с помощью которой свойству Value активной ячейки ActiveCell присваивается значение 1, см. рис. 12:
Рис. 12. Результат выполнения макроса SetValue( ), задание 2, п. 1.
2) Чтобы присвоить значение 1, выделенному на момент запуска макроса диапазону ячеек используют ссылку SelectionValue. В листинге 6 приводится код макроса SetValue2( ), которым единичное значение присваивается всем ячейкам выделенного диапазона:
Листинг 6: Программный код макроса SetValue2 ( )
Public Sub SetValue2 ( )
Selection.Value=1
End Sub
Дело в том, что если выделить диапазон ячеек и запустить макрос SetValue ( ), то единичное значение будет присвоено только левой верхней ячейке диапазона (проверьте сами это утверждение, выделив любой диапазон ячеек и выполнив запуск макроса SetValue ( )). При использовании макроса SetValue2 ( ) единицами заполняется весь диапазон.
Попробуйте самостоятельно выделить любой диапазон ячеек (можно вручную или с помощью запуска рассмотренных выше макросов RangeSelect1-4 ( ), а после выделения на экране соответствующего диапазона ячеек запустить макрос SetValue2 ( ). Примерный вариант выполнения задания приведен на рис. 13:
Рис. 13. Результат выполнения задания 2, п. 1 – 2.
Примечание 2: также можно использовать один макрос, который и выделяет указанные ячейки и заполняет их единицами. В приведенном на рис. 13 примере использован макрос:
Public Sub SetValue2( )
Range("A1:C4,E4:G8,A9:C12,E10:G13").Select
Selection.Value = 1
End Sub
3) Теперь заполните ячейки С3:D5 значениями на 1 большими, чем значение в ячейке A1. Код данного макроса приведен в листинге 7: