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.