Možná budete chtít skrýt neaktivní listy pomocí tohoto makra. Excel vám nedovolí skrýt všechny listy v sešitu; alespoň jeden musí být zobrazen. Můžete však skrýt všechny kromě aktivního listu.
Jak makro funguje
Makro zde prochází listy a přiřazuje názvy každého listu k názvu aktivního listu. Pokaždé, když se makro zacyklí, skryje jakýkoli neodpovídající list.
Dílčí makro1()
'Krok 1: Deklarujte své proměnné
Dim ws As Worksheet
'Krok 2: Začněte procházet všechny pracovní listy
Pro každý ws In ThisWorkbook.Worksheets
'Krok 3: Zkontrolujte název každého listu
If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
'Krok 4: Skryjte list
ws.Visible = xlSheetHidden
End If
'Krok 5: Přejděte na další list
Další ws
End Sub
Krok 1 deklaruje objekt s názvem ws. Tento krok vytvoří kontejner paměti pro každý list, kterým makro prochází.
Krok 2 zahájí opakování a řekne Excelu, aby vyhodnotil všechny listy v tomto sešitu. Všimněte si rozdílu mezi ThisWorkbook a ActiveWorkbook. Objekt ThisWorkBook odkazuje na sešit, který obsahuje kód. Objekt ActiveWorkBook odkazuje na aktuálně aktivní sešit. Často vracejí stejný objekt, ale pokud sešit s kódem není aktivním sešitem, vrátí různé objekty. V tomto případě nechcete riskovat skrytí listů v jiných sešitech, proto použijete ThisWorkBook.
V kroku 3 makro jednoduše porovná název aktivního listu s listem, který je aktuálně ve smyčce.
Pokud se názvy listů liší, makro list v kroku 4 skryje.
V kroku 5 přejdete zpět a získáte další list. Po vyhodnocení všech listů makro skončí.
Všimněte si, že v makru používáte xlsheetHidden. Tato vlastnost použije výchozí stav skrytí, který byste normálně získali, když kliknete pravým tlačítkem na list a vyberete Skrýt. V tomto výchozím stavu skrytí může uživatel kliknout pravým tlačítkem na libovolnou kartu a vybrat možnost Odkrýt, čímž se zobrazí všechny skryté listy. Ale jiný skrytý stav je tajnější než výchozí. Pokud ke skrytí listů použijete xlSheetVeryHidden, uživatelé je vůbec neuvidí – i když kliknou pravým tlačítkem na kartu a zvolí možnost Odkrýt. Jediný způsob, jak odkrýt list skrytý tímto způsobem, je použít VBA.
Jak používat makro
Chcete-li implementovat toto makro, můžete jej zkopírovat a vložit do standardního modulu:
Aktivujte Editor jazyka Visual Basic stisknutím Alt+F11.
Klepněte pravým tlačítkem myši na název projektu/sešitu v okně projektu.
Vyberte Vložit → Modul.
Zadejte nebo vložte kód do nově vytvořeného modulu.