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

Листинг 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: