Microsoft Excel umożliwia stosowanie formatowania warunkowego do komórek. Jeśli wartość w komórce spełnia określone przez Ciebie reguły, funkcja formatowania warunkowego zmieni kolor tekstu w komórce, kolor wypełnienia lub oba te elementy. Jest to podstawowa funkcja, która działa od razu po wyjęciu z pudełka, jednak jeśli chcesz zablokować komórki na podstawie koloru, potrzebujesz do tego małego skryptu VBA.
Możesz użyć formatowania warunkowego, aby zmienić kolor komórki, lub możesz ręcznie zmienić kolor na dowolny. Skrypt VBS nie zależy od formatowania warunkowego w celu zablokowania komórek. Do pokolorowania wystarczy komórka.
Zablokuj komórki na podstawie koloru
Zanim utworzysz skrypt VBA, musisz znać kolor komórki, do której się odwołujesz. VBA nie widzi kolorów takimi, jakimi są; odwołuje się do nich poprzez kody kolorów.
Pierwszą rzeczą, którą musisz zrobić, jest nadanie komórce koloru. Wybraliśmy podstawowy żółty, który jest dość łatwy do odniesienia. Jeśli wybierasz się w innym kolorze, korzystać z tej witryny aby znaleźć kod koloru, którego potrzebujesz. Kod koloru, którego używamy dla koloru żółtego, to # FFFF00.
W programie Excel włącz kartę Deweloper, a następnie przejdź do niej. Kliknij przycisk Visual Basic i wklej następujące elementy w „tym arkuszu”. Ten skrypt został napisany 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
Uruchom skrypt, a zablokuje on wszystkie komórki o ustawionym kolorze. W tym wierszu skryptu zostanie umieszczony kod koloru, który znalazłeś dla swojego koloru;
colorIndex = FFFF00
FFFF00 reprezentuje żółty kolor i to właśnie musisz zastąpić dowolnym kodem koloru, który ma zastosowanie do używanego koloru. Powinniśmy wspomnieć, że najlepiej wybrać podstawowy kolor. Gdy to dodasz, będziesz musiał zapisać plik Excela jako plik z obsługą makr, w przeciwnym razie skrypt VBA nie zapisze.
Zablokowane komórki można łatwo odblokować. Blokada nie jest blokadą chronioną hasłem, która uniemożliwia innym osobom zmianę wartości komórki, jeśli chcą. To zwykła blokada, która zapobiega przypadkowym zmianom w pliku.