Excel VBA (Visual Basic for Applications) je výkonný nástroj pro automatizaci akcí v excelových tabulkách. Jedním z důležitých úkolů, kterým vývojáři čelí, je výběr aktuálního listu v makru. V tomto článku se podrobně podíváme na to, jak lze tento úkol provést pomocí aplikace Excel VBA.
Výběr aktuálního listu umožňuje programově pracovat s konkrétním listem v tabulce. To může být užitečné například při vytváření maker pro automatizaci zpracování dat na různých listech: kopírování, třídění, filtrování atd.
V Excelu VBA lze aktuální list vybrat mnoha způsoby. Jedním z nich je použití vlastností ActiveSheet. Tato vlastnost vrací odkaz na objekt aktuálního aktivního listu. Tímto způsobem můžete přistupovat k jeho vlastnostem a metodám, abyste mohli provádět potřebné operace.
Chcete-li například změnit název aktuálního listu, můžete použít následující kód:
ActiveSheet.Name = "nový název listu"
Přechod na požadovaný list
Chcete-li přejít na požadovaný list v Excelu VBA, můžete použít různé metody a vlastnosti.
1. Vlastnost ActiveSheet umožňuje získat aktuální aktivní list. Chcete-li například přejít na první list v knize, můžete použít následující kód:
Sheets(1).Activate
2. Metoda Sheets ("název listu") umožňuje přejít na list s daným názvem. Chcete-li například přejít na list s názvem List2, můžete použít následující kód:
Sheets("Лист2").Activate
3. Metoda Sheets (Index) umožňuje přejít na list s daným indexem. Indexace začíná od 1. Chcete-li například přejít na třetí list v knize, můžete použít následující kód:
Sheets(3).Activate
4. Příkaz With vám umožňuje pracovat s konkrétním listem, aniž byste museli měnit aktivní list. Chcete-li například pracovat s listem List1, můžete použít následující kód:
With Sheets("Лист1")' Ваш код для работы с листом "Лист1"End With
Pokud je tedy nutné přejít na konkrétní list v Excelu VBA, lze použít výše uvedené metody a vlastnosti. To vám umožní pohodlně pracovat s různými listy v knize a provádět potřebné operace.
Definice aktuálního aktivního listu
Nejjednodušší způsob, jak určit aktuální aktivní list, je použití vlastnosti ActiveSheet. Tato vlastnost vrací objekt-list, který představuje aktuální aktivní list.
Příklad použití vlastnosti ActiveSheet:
Dim currentSheet As WorksheetSet currentSheet = ActiveSheet' Теперь переменная currentSheet содержит текущий активный лист
Jakmile identifikujete aktuální aktivní list pomocí vlastnosti ActiveSheet, můžete provádět další operace nebo pracovat s tímto listem.
K určení aktuálního aktivního listu lze také použít vlastnost ActiveWindow. Vlastnost ActiveWindow vrací objekt-okno, které obsahuje aktuální aktivní list.
Příklad použití vlastnosti ActiveWindow:
Dim currentSheet As WorksheetSet currentSheet = ActiveWindow.ActiveSheet' Теперь переменная currentSheet содержит текущий активный лист
Obě tyto metody vám umožňují identifikovat aktuální aktivní list a uložit jej do proměnné, abyste s ním mohli provádět další operace v kódu VBA.
Použití uvedených metod je důležité, když potřebujete pracovat s aktuálním aktivním listem v Excelu VBA. Umožňují identifikovat aktuální list a provádět s ním další operace, jako je čtení dat, zápis dat nebo změna formátování buněk.
Výběr listu podle indexu
Pro výběr listu podle jeho indexu používá Excel VBA vlastnost Worksheets. Index listu je jeho pořadové číslo mezi ostatními listy v knize, počínaje 1.
Pro výběr listu podle indexu je nutné použít následující syntaxi:
Kde Index - je to celočíselná hodnota, která představuje pořadové číslo listu, které chcete vybrat.
Pokud máme knihu se třemi listy a chceme vybrat druhý list, je nutné použít následující kód:
Po spuštění tohoto kódu se v aktivním okně aplikace Excel otevře vybraný list.
Výběr listu podle jména
Chcete-li vybrat konkrétní list v Excelu VBA, můžete použít jeho název. To může být užitečné, pokud předem znáte název listu, se kterým chcete pracovat.
Chcete-li vybrat list podle jména, budete muset použít metodu Worksheets, která jako možnost předá název listu. Níže je uveden příklad kódu, který ukazuje tento proces:
Sub ВыборЛистаПоИмени()Dim имя_листа As Stringимя_листа = "Название листа" ' здесь нужно указать имя нужного листаThisWorkbook.Worksheets(имя_листа).SelectEnd Sub
V tomto příkladu je proměnná "název_lista" přiřazena hodnota odpovídající názvu listu, který chcete. Pomocí metody Worksheets je pak list vybrán podle názvu a metoda Select jej označí jako aktivní.
Pokud požadovaný list se zadaným názvem neexistuje, dojde k chybě. Abyste se tomu vyhnuli, můžete nejprve zkontrolovat list pomocí funkce WorksheetExists, jak je znázorněno v příkladu níže:
Function ЛистСуществует(имя_листа As String) As BooleanDim лист As WorksheetЛистСуществует = FalseFor Each лист In ThisWorkbook.WorksheetsIf лист.Name = имя_листа ThenЛистСуществует = TrueExit FunctionEnd IfNext листEnd FunctionSub ВыборЛистаПоИмени()Dim имя_листа As Stringимя_листа = "Название листа" ' здесь нужно указать имя нужного листаIf ЛистСуществует(имя_листа) ThenThisWorkbook.Worksheets(имя_листа).SelectElseMsgBox "Лист с указанным именем не существует!"End IfEnd Sub
V tomto příkladu je vytvořena funkce list, která kontroluje přítomnost listu se zadaným názvem. Pokud list existuje, kód se nadále provádí stejně jako v předchozím příkladu. Pokud List s uvedeným názvem neexistuje, zobrazí se chybová zpráva.
Výběr listu jménem v Excelu VBA lze tedy dosáhnout pomocí metody Worksheets, která bere název listu jako parametr. Pomocí této metody je možné aktivovat požadovaný list a provést s ním potřebné kroky.