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.