Obsah
Používám VBA / VB.Net k vytváření lepších způsobů, jak dosáhnout každodenních úkolů
Vytvoření nabídky
První část tvorby nabídky je ta nejjednodušší. Vytvořte list s názvem „Hlavní nabídka“ a vložte jej do prvního slotu na liště záložek listu ve spodní části obrazovky (je to index 1). Na tomto listu vytvořte svou nabídku, zatím ji ponecháme základní a budeme mít 3 tlačítka odkazující na různé listy v sešitu, jak je uvedeno níže
Jakmile vytvoříte hlavní nabídku, je čas začít psát nějaký kód VBA, aby tlačítka dělaly to, co chceme.
- Otevřete editor VBA (ALT + F11)
- V Okno projektu (Levé horní okno), klikněte pravým tlačítkem a vyberte „Vložit" a pak Modul (ne modul třídy!)
Každé tlačítko bude vyžadovat vlastní kód, tyto kódy můžete seskupit do souboru Modul právě jste vytvořili a zavoláte každému zvlášť. Začněme tedy tlačítkem, které otevře List 2.
Nejprve poklepejte na Modul 1 v Okno projektu, v levém dolním okně (Okno Vlastnosti), přejmenujte modul na „Menu_Buttons“
Následující kód otevře list 2:
Veřejné dílčí listy Open_Sheet_2 () („List2“). Aktivovat koncový díl
Pojďme se tedy rychle podívat, z čeho se tento kód skládá. Za prvé, je opravdu dobré si zvyknout na vhodné pojmenovávání svých rutin. „Open_Sheet_2“ je pěkný a snadno zapamatovatelný a poskytuje podrobnosti o tom, co rutina dělá.
Řádek 3 je řádek, který dělá veškerou práci, část „Listy (“ kódu říká VBA, že se chystáte pojmenovat list, mezi uvozovkami je pak název listu, jak se zobrazuje v aplikaci Excel. Jakmile Uzavřeli jsme uvozovky a závorky, značka „.Activate“ pak řekne VBA, že chcete pojmenovaný list přenést do hlavního zaměření sešitu.
Se všemi ostatními tlačítky by váš kód měl vypadat asi takto:
Veřejné dílčí Open_Sheet_2 () listy ("List2"). Aktivovat koncové dílčí Veřejné dílčí Open_Sheet_3 () Tabulky ("List3"). Aktivovat koncové dílčí veřejné dílčí Open_Sheet_4 () Listy ("List4"). Aktivovat koncové dílčí
Nyní musíme propojit kód s tlačítky, to je velmi snadné! Klikněte pravým tlačítkem na tlačítko a vyberte „Přiřadit makro". V zobrazené nabídce vyberte příslušnou rutinu ze seznamu, takže pro List 2 vyberte"Open_Sheet_2"ze seznamu.
Nyní to kliknutím vyzkoušejte!
Skrytí listů z panelu karet
Řekněme, že máte 40 sešitů v sešitu, i když máte hlavní nabídku, stále je neuspořádané dívat se na všechny tyto listy ve spodní části. Můžeme přidat o něco více kódu k tomu, co již máme, a ještě jedno tlačítko a budeme moci skrýt všechny listy jediným kliknutím! Když je list vybrán z hlavní nabídky, ve spodní části se znovu zobrazí karta listu.
Vytvořte nové tlačítko v hlavní nabídce s textem „Zavřít všechny karty“:
Ve stejné Modul udělali jste dříve, přidejte následující kód:
Public Sub Close_All_Sheets () 'Níže uvedený kód uvádí, že každý list, který se objeví v' aktivním sešitu, by měl být zkontrolován, aby se zjistilo, zda je jeho název stejný 'jako "Hlavní nabídka". Pokud tomu tak není, nastavte jeho viditelnost na hodnotu false Pro každý list v ActiveWorkbook.Worksheets Pokud Worksheet.Name> "Hlavní nabídka", pak Worksheet.Visible = False Další End Sub
Vzhledem k tomu, že komentáře jsou ve stavu kódu, tento kód zkontroluje všechny listy a zavře je, pokud se nenazývají „Hlavní nabídka“. Nyní musíte přiřadit toto makro tlačítku. Opět klikněte pravým tlačítkem na tlačítko „Zavřít všechny karty“ a přiřaďte makro „Close_All_Sheets“.
Klikněte na tlačítko a sledujte, jak se všechny listy zavírají!
Nyní zbývá jen přidat kód, který tlačítkům listu řekne, aby odkryl list, který chcete otevřít:
Public Sub Open_Sheet_2 () Sheets ("Sheet2"). Visible = True 'The above line makes the sheet' again visible Sheets ("Sheet2"). Activate End Sub Public Sub Open_Sheet_3 () Sheets ("Sheet3"). Visible = True „Výše uvedený řádek opět zviditelní list“ Listy („List3“). Aktivovat koncový díl veřejný Sub Open_Sheet_4 () Listy („List4“). Visible = True 'Díky výše uvedenému řádku bude list znovu viditelný Listy („List4“) ) .Activate End Sub Public Sub Close_All_Sheets () 'Níže uvedený kód uvádí, že každý list, který se objeví v' aktivním sešitu, by měl být zkontrolován, aby se zjistilo, zda je jeho název stejný 'jako "Hlavní nabídka". Pokud tomu tak není, nastavte jeho viditelnost na hodnotu false Pro každý list v ActiveWorkbook.Worksheets Pokud Worksheet.Name> "Hlavní nabídka", pak Worksheet.Visible = False Další End Sub
Díky výše uvedenému dokončenému kódu nyní máte plně funkční systém nabídek, který automaticky odkrývá jakýkoli list, a navíc možnost rychle skrýt všechny otevřené listy.