Як заблокувати клітинки на основі кольору в Microsoft Excel

Microsoft Excel надає можливість застосовувати умовне форматування до клітинок. Якщо значення в комірці відповідає заданим вами критеріям, функція умовного форматування може змінити колір тексту або фону комірки, або ж обидва параметри. Це стандартна функція, яка працює безпосередньо. Однак, якщо ви хочете заблокувати клітинки на основі їхнього кольору, вам знадобиться невеликий VBA-скрипт.

Ви можете використовувати умовне форматування для зміни кольору комірки або вручну встановити будь-який потрібний колір. VBA-скрипт для блокування клітинок не залежить від умовного форматування. Для його роботи достатньо, щоб комірка була пофарбована.

Блокування комірок на основі кольору

Перш ніж створити VBA-скрипт, потрібно визначити колір комірки, на яку ви посилаєтеся. VBA розпізнає кольори не так, як ми їх бачимо; він ідентифікує їх за кодами кольорів.

Спочатку необхідно зафарбувати комірку. У нашому прикладі ми використаємо стандартний жовтий колір, який легко ідентифікувати. Якщо ви використовуєте інший колір, скористайтеся цим веб-сайтом, щоб знайти відповідний код кольору. Код жовтого кольору, який ми використовуємо, – #FFFF00.

В Excel увімкніть вкладку “Розробник”, а потім перейдіть до неї. Натисніть кнопку “Visual Basic” і вставте наступний код в “Цей аркуш”. Цей скрипт був розроблений користувачем Superuser Dave.

Sub WalkThePlank()

Dim colorIndex As Integer
colorIndex = FFFF00

Dim rng As Range

For Each rng In ActiveSheet.UsedRange.Cells

Dim color As Long
color = rng.Interior.ColorIndex
If (color = colorIndex) Then
rng.Locked = True
Else
rng.Locked = False
End If

Next rng

End Sub

Після запуску скрипт заблокує всі клітинки, які мають заданий вами колір. Код кольору, який ви знайшли, потрібно буде вставити у наступному рядку скрипта:

colorIndex = FFFF00

FFFF00 – це код жовтого кольору, і його потрібно замінити на код кольору, який ви використовуєте. Зауважте, що краще використовувати базові кольори. Після внесення змін вам потрібно буде зберегти файл Excel як файл із підтримкою макросів, інакше VBA-скрипт не збережеться.

Заблоковані клітинки можна легко розблокувати. Блокування не захищене паролем, воно лише запобігає випадковій зміні значень у клітинках. Це стандартне блокування, яке захищає файл від ненавмисних змін.