Jak zablokować komórki na podstawie koloru w programie Microsoft Excel

Microsoft Excel oferuje możliwość korzystania z formatowania warunkowego dla komórek. Gdy zawartość komórki spełnia określone przez użytkownika warunki, funkcja formatowania warunkowego modyfikuje kolor tekstu, kolor tła lub obydwa elementy. Jest to podstawowa funkcja, która działa od razu po zainstalowaniu programu, jednak aby zablokować komórki na podstawie koloru, potrzebny będzie prosty skrypt VBA.

Formatowanie warunkowe można wykorzystać do zmiany koloru komórki, ale możliwe jest również ręczne dostosowanie koloru. Skrypt VBA nie opiera się na formatowaniu warunkowym do blokowania komórek – wystarczy, aby zmienić kolor samej komórki.

Zablokowanie komórek według koloru

Zanim przystąpisz do stworzenia skryptu VBA, musisz znać kolor komórki, którą chcesz wykorzystać. VBA nie interpretuje kolorów w sposób, w jaki je widzimy; używa do tego kodów kolorów.

Na początku musisz nadać wybranej komórce kolor. Wybraliśmy podstawowy odcień żółtego, który jest łatwy do zidentyfikowania. Jeśli chcesz użyć innego koloru, możesz skorzystać z tej strony, aby znaleźć odpowiedni kod koloru. Kod koloru dla żółtego to #FFFF00.

W programie Excel włącz kartę Deweloper, a następnie przejdź do niej. Kliknij przycisk Visual Basic i wklej poniższy kod do sekcji „ten arkusz”. Skrypt został opracowany przez użytkownika 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

Po uruchomieniu skryptu, wszystkie komórki o określonym kolorze zostaną zablokowane. W linii kodu skryptu umieścisz kod koloru, który wybrałeś dla swojego koloru:

colorIndex = FFFF00

FFFF00 oznacza żółty kolor, a ty musisz zamienić go na kod koloru, który odpowiada twojemu wyborowi. Warto dodać, że najlepiej jest wybierać podstawowe kolory. Po dodaniu skryptu, pamiętaj, aby zapisać plik Excela jako plik z obsługą makr, w przeciwnym razie skrypt VBA nie zostanie zapisany.

Zablokowane komórki można w prosty sposób odblokować. Warto zaznaczyć, że ta blokada nie jest zabezpieczeniem hasłem, co oznacza, że inni użytkownicy mogą zmieniać wartości komórek, jeśli tylko zechcą. To zwykła blokada, mająca na celu unikanie przypadkowych zmian w pliku.