Есть Книга, содержащая 12-ть Листов, имена которых соответствуют названиям месяцев года, и несколько Листов с другими именами. При открытии Книги запускается макрос, который ставит защиту на все Листы и активирует Лист с именем текущего месяца, снимая с него защиту.
Код |
---|
Private Sub Workbook_Open() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Protect Password:="123" Next ws With ThisWorkbook.Sheets(MonthName(Month(Now))) .Activate .Unprotect Password:="123" End With End Sub |
Всё отлично работало, пока не появилась необходимость добавить Автофигуру на Листы с названиями месяцев, которая меняет цвет заливки в зависимости от того, защищён или не защищён Лист. Добавил в код пару строк и Excel стал выдавать ошибку
Код |
---|
Private Sub Workbook_Open() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Protect Password:="123" ws.Shapes("AutoShape 1").Fill.ForeColor.RGB = vbRed Next ws With ThisWorkbook.Sheets(MonthName(Month(Now))) .Activate .Unprotect Password:="123" .Shapes("AutoShape 1").Fill.ForeColor.RGB = vbGreen End With End Sub |
Понимаю, проблема заключается в том, что Автофигура имеется не на всех Листах, но как изменить код не знаю. Перечитал массу форумов, перепробовал массу разных вариантов – увы, ничего не получается. Помогите, пожалуйста, переписать вышеуказанный код, чтобы выполнялись следующие условия:
1. При открытии Книги защита ставится на ВСЕ Листы.
2. На Листах с названиями месяцев цвет Автофигуры - «Красный».
Заранее благодарю за ответ.