logo
Информатика учебник

11.1.2. Задания на создание макросов в Excel

Задание 1: для начала попробуйте создать простейший макрос, который в РК "Работа с ячейками" только один раз перемещал бы курсор из произвольной ячейки РЛ Лист1 в заданную ячейку F7 и окрашивал бы её в синий цвет (внутренний код синего цвета – 23).

Задание 2: находясь в произвольной ячейке РЛ Лист1 последовательно задать на нём заливку:

- ячейки E5 - в жёлтый цвет,

- ячейки F5 - в зелёный цвет,

- ячейки G5 - в красный цвет,

- ячейку H5 – оставить без заливки и прекратить работу макроса.

Выбрать для него название "ЦветаЯчеекE5_F5_G5отмена_H5" и задать "горячие" клавиши Ctrl+W.

Решение. После выполнения всех этих действий в процессе записи макроса "ЦветаЯчеекE5_F5_G5отмена_H5" вы должны получить макрос, код которого приведён ниже:

Sub ЦветаЯчеекE5_F5_G5отмена_H5()

'

' ЦветаЯчеекE5_F5_G5отмена_H5 Макрос

' Макрос записан 02.05.2009 (MINI_CORP)

'

' Сочетание клавиш: Ctrl+w

'

Range("E5").Select ' выбрать ячейку E5

With Selection.Interior ' для выбранного назначить

двойное свойство

.ColorIndex = 6 ' Interior.ColorIndex = 6 (жёлтый цвет)

.Pattern = xlSolid ' образец заливки = сплошной

End With ' конец для выбранного

Range("F5").Select

With Selection.Interior

.ColorIndex = 4 4 – зелёный цвет

.Pattern = xlSolid

End With пояснения аналогичны

Range("G5").Select

With Selection.Interior

.ColorIndex = 3 3 – красный цвет

.Pattern = xlSolid

End With

Range("H5").Select '

Selection.Interior.ColorIndex = xlNone ' xlNone - без цвета

End Sub

Рис. 11.1 Текст (код) макроса "ЦветаЯчеек…"

Теперь этот макрос можно запустить тремя способами:

  1. СервисМакросМакросы – выбрать имя макроса из списка – Выполнить,

  2. из среды редактора Visual Basic, нажав клавишу F5,

  3. из Excel (если редактор VBA закрыт) нажатием Ctrl+W.

Запустите макрос на исполнение и проанализируйте результат.

Задание 3. Усложним работу, добавив в задание 2 требование не только окрасить ячейки в нужные цвета, но и оформив их тонкими рамками.

Если вы правильно выполните заданное, то в новом макросе "Цвета_и_рамки_ячеек" вы увидите новые операторы и свойства:

Selection.Borders(xlDiagonalDown).LineStyle = xlNone

Selection.Borders(xlDiagonalUp).LineStyle = xlNone

With Selection.Borders(xlEdgeLeft)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeTop)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeBottom)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeRight)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

Рис. 11.2. Фрагмент кода макроса "Цвета_и_рамки_ячеек"

Все они связаны с о б р а м л е н и е м ячеек р а м к а м и. К прежним пояснениям теперь добавим:

Selection.Bordersвыбор обрамления,

xlDiagonalDownдиагональ сверху вниз, (xlDiagonalUpдиагональ снизу вверх),

LineStyleстиль (тип) линии, xlNoneнет

Edgeкромка, Left, Right, Top, Bottomслева, справа, сверху, снизу,

Weight- толщина (линии), Thin - тонкий

Остаётся заметить, что подобные конструкции сопровождают выбор каждой ячейки. Так что длина кода существенно увеличилась.

Задание 4. Попробуйте теперь выполнить пример из п. 8.2 главы 8 (стр. 158). Старайтесь не отступать от предлагаемых там рекомендаций.