Excel VBA (Visual Basic for Applications) je programovací jazyk, který umožňuje automatizaci a rozšíření možností aplikace Excel. Poskytuje praktické nástroje pro práci s daty, vzorci, grafy a dalšími prvky programu. Jedním z důležitých úkolů, které lze vyřešit pomocí VBA, je vytváření a změna pracovních listů.
Pracovní list je základní jednotka práce v Excelu, kam lze umístit data a provádět výpočty. Ve většině případů je vhodné mít více pracovních listů, abyste mohli organizovat data podle skupin nebo provádět úkoly různého typu. VBA má několik způsobů, jak přidat nový pracovní list a zadání jeho názvu.
Jedním ze způsobů je použití metody add objektu Sheets. Přibližný kód pro přidání nového listu a zadání jeho názvu "nový list" je následující:
Sub AddNewSheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add
ws.Name = "nový list"
End Sub
V tomto kódu oznamujeme novou proměnnou ws typu Worksheet, která bude představovat nový pracovní list. Poté pomocí metody add objektu Sheets přidáme do sešitu nový pracovní list. Nakonec použijeme vlastnost name objektu Worksheet k zadání názvu nového pracovního listu.
Excel VBA: pracovní listy a jejich názvy
Ve Visual Basic for Applications (VBA) lze pro práci s Excelem vytvářet a spravovat pracovní listy. Každý list je samostatná karta v knize Excel a má svůj jedinečný název. V této části se podíváme na to, jak přidat nový list v Excelu VBA a nastavit mu název.
K vytvoření nového pracovního listu používá VBA metodu add objektu Worksheets . Níže je uveden příklad kódu, který přidá nový pracovní list a přiřadí mu název:
Sub AddNewWorksheet()Dim newSheet As WorksheetSet newSheet = ThisWorkbook.Worksheets.AddnewSheet.Name = "Новый лист"End Sub
V tomto příkladu je nejprve vytvořen objekt Newsheet typu Worksheet, který představuje nový pracovní list. Pomocí metody Add objektu Worksheets je pak vytvořen nový pracovní list a přiřazen proměnné newSheet . Nakonec se použije vlastnost name objektu newsheet k zadání nového pracovního listu s názvem "Nový list".
Název listu můžete změnit tak, že v kódu vyměníte řádek nový list za jakýkoli jiný název. Je důležité si uvědomit, že název listu musí být jedinečný v rámci knihy Excel.
Pokud potřebujete přidat více pracovních listů s různými názvy, můžete použít smyčku For . Níže je uveden příklad kódu, který vytváří tři nové pracovní listy s názvy list 1, list 2 a list 3:
Sub AddMultipleWorksheets()Dim newSheet As WorksheetDim i As IntegerFor i = 1 To 3Set newSheet = ThisWorkbook.Worksheets.AddnewSheet.Name = "Лист " & iNext iEnd Sub
Tento příklad používá cyklus For, který se provádí třikrát. Každá iterace vytvoří nový pracovní list a přiřadí mu odpovídající název obsahující číslo iterace cyklu.
Nyní víte, jak přidat nový list do Excelu VBA a nastavit mu jméno. Tyto znalosti můžete použít k vytváření a správě pracovních listů ve svých makrech VBA.
Jak vytvořit nový list v Excelu VBA
Ve Visual Basic for Applications (VBA) pro Excel lze pomocí metody vytvářet nové pracovní listy Add objektu Sheets. Tato metoda přidává na konec knihy nový prázdný list.
Zde je příklad kódu, který vytváří nový pracovní list:
Sub CreateNewWorksheet()Dim myWorksheet As Worksheet' Добавляем новый рабочий листSet myWorksheet = ThisWorkbook.Sheets.Add' Задаем имя для нового листаmyWorksheet.Name = "Новый лист"End Sub
Kód začíná oznámením proměnné, která bude odkazovat na vytvořený list. Poté pomocí metody Add objektu Sheets přidá se nový pracovní list a odkaz na něj je přiřazen proměnnou. Poté pomocí vlastnosti Name můžete zadat název nového listu. V tomto příkladu je název listu nastaven jako" nový list", ale můžete nastavit libovolné jiné jméno, jak chcete.
Jakmile tento kód dokončíte, zobrazí se ve vašem sešitu aplikace Excel nový pracovní list s vybraným názvem.
Pomocí této techniky můžete do sešitu aplikace Excel přidat několik pracovních listů a na základě vašich potřeb jim nastavit jedinečná jména.
Jak nastavit název listu v Excelu VBA
V aplikaci Excel VBA můžete zadat název listu pomocí vlastnosti name listu. To může být užitečné, když chcete vytvářet pracovní listy dynamicky a ukládat jejich informace.
Než zadáte název listu, musíte jej vytvořit. Můžete to udělat pomocí metody Add:
Dim ws As WorksheetSet ws = ThisWorkbook.Worksheets.Add
Po vytvoření pracovního listu mu můžete nastavit název nastavením hodnoty vlastnosti Name:
ws.Name = "Новый рабочий лист"
K zadání názvu listu můžete také použít proměnné nebo hodnoty z buněk:
Dim ws As WorksheetDim sheetName As StringsheetName = "Новый рабочий лист"Set ws = ThisWorkbook.Worksheets.Addws.Name = sheetName
Před zadáním jeho jména můžete také zkontrolovat, zda existuje pracovní list s daným názvem:
Dim ws As WorksheetDim sheetName As StringsheetName = "Новый рабочий лист"On Error Resume NextSet ws = ThisWorkbook.Worksheets(sheetName)On Error GoTo 0If ws Is Nothing ThenSet ws = ThisWorkbook.Worksheets.Addws.Name = sheetNameElseMsgBox "Рабочий лист с таким именем уже существует."End If
Nyní víte, jak nastavit název listu v Excelu VBA. Je to užitečná funkce, která Vám umožňuje vytvářet a spravovat pracovní listy v automatickém režimu.
Jak odstranit list v Excelu VBA
Odstranění listu v Excelu VBA může být užitečné při automatizaci procesů s tabulkami. K odstranění listu se VBA používá metoda Delete objektu Worksheets. Níže je uveden příklad kódu, který ukazuje odstranění listu:
Sub УдалитьЛист()Application.DisplayAlerts = False 'Отключить предупреждения об удалении листаThisWorkbook.Worksheets("Название листа").Delete 'Замените "Название листа" на нужное названиеApplication.DisplayAlerts = True 'Включить предупреждения об удалении листаEnd Sub
V tomto příkladu metoda Delete platí pro objekt Worksheets pomocí názvu listu, který je třeba odstranit. Před odstraněním listu dočasně vypneme upozornění na odstranění pomocí Application.DisplayAlerts = False. Po odstranění listu povolíme upozornění na odstranění pomocí Application.DisplayAlerts = True.
Všimněte si, že při mazání listu budou všechna data na tomto listu také odstraněna, aniž by bylo možné obnovit. Před provedením mazání se ujistěte, že jste v případě potřeby zálohovali data.
Nyní víte, jak použít VBA k odstranění listu v Excelu.
Jak zkopírovat list v Excelu VBA
Pokud potřebujete vytvořit kopii listu v Excelu VBA, můžete použít metodu Copy . Tato metoda umožňuje vytvořit přesnou kopii vybraného listu.
K provedení operace kopírování budete potřebovat přístup k objektu Worksheet, který představuje původní pracovní list. K tomuto objektu můžete přistupovat pomocí jeho názvu nebo indexu.
Zde je příklad kódu, který ukazuje, jak zkopírovat pracovní list pomocí metody Copy :
Sub CopyWorksheet()Dim wsSource As WorksheetDim wsCopy As Worksheet' Получаем исходный рабочий листSet wsSource = ThisWorkbook.Worksheets("Исходный лист")' Создаем копию рабочего листаSet wsCopy = wsSource.Copy' Задаем имя для копииwsCopy.Name = "Копия листа"' Добавляем копию листа в конец книгиwsCopy.Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)End Sub
V tomto příkladu je původní pracovní list s názvem "původní list" zkopírován pomocí metody Copy . Kopie listu poté obdrží nový název "kopie listu" pomocí vlastnosti Name . Nakonec se kopie listu přesune na konec knihy pomocí metody Move .
Po provedení tohoto kódu budete mít přesnou kopii zdrojového listu se zadaným názvem.
Jak přejmenovat list v Excelu VBA
Přejmenování listu v Excelu VBA může být užitečné, když jej chcete obdařit smysluplnějším a pohodlnějším názvem. Zde je návod, jak to udělat:
- Otevřete Visual Basic Pro aplikace (VBA) v Excelu kliknutím Alt + F11.
- V okně VBA klikněte pravým tlačítkem na název listu, který chcete přejmenovat, a vyberte Vložit >Modul.
- V okně modulu, které se otevře, zadejte následující kód:
Sub RenameWorksheet()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("Имя_листа") 'Замените "Имя_листа" на текущее имя листаws.Name = "Новое_имя_листа" 'Замените "Новое_имя_листа" на желаемое новое имя листаEnd Sub
- Nahraďte "Název_list" aktuálním názvem listu, který chcete přejmenovat.
- Nahraďte "New_men_lista" požadovaným novým názvem pro pracovní list.
- Stiskněte F5 nebo vyberte Provést >Proveďte podprogram ke spuštění kódu.
Po dokončení kódu bude zadaný pracovní list přejmenován na nový zadaný název. Tyto kroky můžete opakovat a přejmenovat další pracovní listy v Excelu VBA.
Jak přesunout list v Excelu VBA
Při programování v jazyce VBA v Excelu je možné přesouvat pracovní listy uvnitř knihy. K tomu se používají metody a vlastnosti objektu Workbook a objektu Worksheet:
- Vyberte pracovní sešit, kam chcete listy přesunout.
- Použijte metodu .Sheets (index).Move předává nový index listu, kam se má přesunout.
- Použijte vlastnost .Sheets (index).Name pro změnu názvu přesunutého listu, pokud je to nutné.
Níže je uveden příklad kódu, který ukazuje přesun listu s indexem 1 na začátek knihy:
Sub MoveSheet()Dim wb As WorkbookDim ws As WorksheetSet wb = ThisWorkbookSet ws = wb.Sheets(1)' Перемещение листа в началоws.Move Before:=wb.Sheets(1)' Изменение имени перемещенного листаwb.Sheets(1).Name = "Перемещенный лист"End Sub
Tento kód přesune první list v knize na začátek před ostatními listy a poté změní jeho název na "přesunutý list".
Jak skrýt a zobrazit list v Excelu VBA
V Excelu VBA lze pomocí metod a vlastností skrýt a zobrazit pracovní listy. To může být užitečné, pokud chcete dočasně skrýt listy, které nejsou v současné situaci potřeba, nebo pokud chcete poskytnout přístup pouze k určitým listům.
Ke skrytí pracovního listu lze použít vlastnost Visible následným přiřazením hodnoty xlSheetHidden nebo xlSheetVeryHidden. Například:
Worksheets("Название листа").Visible = xlSheetHidden
Zde "Název listu" - to je název listu, který chcete skrýt. Při významu xlSheetHidden list bude skrytý,ale uživatel jej bude moci zobrazit výběrem příslušné možnosti v části Zobrazit skryté listy na kartě Zobrazit. A při významu xlSheetVeryHidden list bude skrytý a nedostupný pro zobrazení uživatelem.
Chcete-li zobrazit skrytý list, můžete použít stejnou metodu jednoduše přiřazením hodnoty xlSheetVisible. Například:
Worksheets("Название листа").Visible = xlSheetVisible
To uživatelům umožní znovu vidět a komunikovat s daty na listu.
Kromě toho je možné zkontrolovat aktuální stav viditelnosti listu pomocí vlastnosti Visible a provést příslušné kroky v závislosti na výsledku. Chcete-li například zkontrolovat, zda je list skrytý, můžete použít následující kód:
If Worksheets("Название листа").Visible = xlSheetHidden Then'выполнить определенные действияEnd If
Použití metod a vlastností aplikace Excel VBA tedy usnadňuje skrytí a zobrazení pracovních listů v závislosti na potřebách a požadavcích vašeho projektu.