Jak zamknout buňky na základě barvy v aplikaci Microsoft Excel

Microsoft Excel nabízí možnost aplikovat na buňky podmíněné formátování. Pokud obsah buňky odpovídá definovaným pravidlům, podmíněné formátování může automaticky změnit barvu písma, výplně buňky, nebo obojí současně. Tato funkce je standardně dostupná, nicméně pro uzamčení buněk na základě jejich barvy je nutné využít skript VBA.

Podmíněné formátování lze použít ke změně barvy buňky, nebo je možné barvu nastavit manuálně. Skript VBA pro uzamčení buněk není závislý na podmíněném formátování, potřebuje pouze informaci, že buňka má specifickou barvu.

Uzamčení Buněk Podle Barvy

Před tvorbou skriptu VBA je nutné znát barevný kód buňky, na kterou skript odkazuje. VBA barvy nerozlišuje vizuálně, identifikuje je pomocí jejich specifických barevných kódů.

Prvním krokem je tedy obarvení buňky. Pro jednoduchost jsme zvolili základní žlutou, kterou lze snadno identifikovat. Pokud zvolíte jinou barvu, můžete na tomto webu vyhledat odpovídající barevný kód. Kód pro žlutou barvu je #FFFF00.

V Excelu aktivujte kartu Vývojář a přepněte se na ni. Klikněte na tlačítko Visual Basic a vložte následující kód do sekce ‚This Worksheet‘. Autorem skriptu je uživatel 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 spuštění tohoto skriptu se uzamknou všechny buňky, které mají nastavenou definovanou barvu. Barevný kód buňky se definuje na tomto řádku skriptu:

colorIndex = FFFF00

Kód FFFF00 reprezentuje žlutou barvu a je nutné jej nahradit kódem barvy, kterou používáte. Je doporučeno pracovat se základními barvami pro větší přehlednost. Po vložení kódu je třeba uložit soubor Excel jako soubor s povolenými makry, jinak se VBA skript neuloží.

Uzamčené buňky je možné jednoduše odemknout. Nejedná se o zámek chráněný heslem, jeho cílem je zabránit náhodným úpravám obsahu buňky. Jedná se o běžný zámek, který chrání data před nechtěnými změnami.