Microsoft Excel je jednou z nejoblíbenějších tabulkových aplikací. Pokud však standardní funkce aplikace Excel nestačí, můžete se uchýlit k použití VBA (Visual Basic for Applications) k vytváření maker a automatizaci úloh.
Excel VBA vám umožňuje pracovat s listy a pracovním sešitem, otevírat, zavírat, kopírovat, mazat a přejmenovávat listy. Kromě toho je možné vytvářet nové listy, pohybovat se mezi listy a měnit jejich pořadí.
V sešitu Excel VBA lze provádět různé operace, jako je ukládání, ukládání jako, otevírání, zavírání a vytváření nové knihy. Kromě toho je možné získat a změnit vlastnosti pracovní knihy, jako je název, autor, datum posledního uložení a další.
Použití aplikace Excel VBA vám umožňuje zjednodušit práci s listy a pracovní knihou, urychlit provádění opakujících se úkolů a zlepšit efektivitu práce s daty. Po seznámení se základními příkazy a funkcemi VBA budete moci vytvářet výkonná makra, která automatizují rutinní operace v Excelu a pomohou vám stát se produktivnějším uživatelem.
Vytváření a odstraňování listů
Programování v VBA používá metody a vlastnosti objektu k práci s listy v Excelu Workbook. V této části se podíváme na to, jak vytvořit nový list a odstranit ten stávající.
K vytvoření nového listu je třeba použít metodu Worksheets.Add . Tato metoda přidává nový list na konec knihy. Následující kód například vytvoří nový list:
Sub СоздатьЛист()Set book = ThisWorkbookbook.Worksheets.Addbook.Worksheets(book.Worksheets.Count).Name = "Новый лист"End Sub
V tomto příkladu vytvoříme nový list pomocí metody Add a přiřadíme mu název pomocí vlastnosti Name . Objekt ThisWorkbook používáme k odkazu na pracovní sešit, který vytvoří nový list.
Pokud potřebujete odstranit existující list, můžete použít metodu Worksheets(index).Delete . Následující kód například odstraní první list v knize:
Sub УдалитьЛист()Set book = ThisWorkbookbook.Worksheets(1).DeleteEnd Sub
V tomto příkladu používáme metodu Delete k odstranění listu s indexem 1. Všimněte si, že indexy listů začínají na 1, takže první list má index 1, druhý index 2 a tak dále.
Tedy pomocí metod Add a Delete objektu Workbook listy v Excelu můžete vytvářet a odstraňovat pomocí VBA.
Jak vytvořit nový list v Excelu pomocí VBA
V Excelu lze pomocí VBA (Visual Basic for Applications) snadno vytvářet nové listy v sešitu. To může být užitečné, pokud potřebujete uspořádat data nebo provádět různé akce na jednotlivých listech.
K vytvoření nového listu v Excelu pomocí VBA se používá metoda Add objektu Sheets. Zde je příklad kódu:
Sub CreateNewSheet()
Sheets.Add
ActiveSheet.Name = "nový list"
End Sub
Tento kód vytvoří nový list v pracovní knize a pojmenuje jej "nový list".
Pokud potřebujete vytvořit více nových listů, můžete použít cyklus For. Například:
Sub CreateMultipleSheets()
Dim i As Integer
For i = 1 To 5
Sheets.Add
ActiveSheet.Name = "list" & i
Next i
End Sub
Tento kód vytvoří 5 nových listů s názvy list 1, list 2 a tak dále.
Kromě toho je možné uložit odkaz na vytvořený list do proměnné a použít jej k další práci s listem. Zde je příklad:
Sub UseNewSheet()
Dim newSheet As Worksheet
Set newSheet = Sheets.Add
newSheet.Name = "můj list"
'Dále můžete provádět různé akce na novém listu
End Sub
V tomto příkladu je proměnná newSheet bude odkazovat na vytvořený list s názvem "Můj list". Pomocí této proměnné můžete provádět všechny požadované akce na novém listu.
Pomocí VBA je tedy možné vytvářet nové listy v Excelu a pracovat s nimi. Díky tomu je možné pohodlně organizovat data a provádět různé operace na různých listech v rámci jedné pracovní knihy.
Odstranění listů v Excelu VBA: metody a příklady
Metoda 1: Odstranění listu podle názvu
První metodou je odstranění listu podle jeho jména. K tomu je třeba použít metodu Delete objektu Worksheet a jako argument metody zadejte název odstraněného listu. Níže je uveden příklad kódu:
Sub DeleteSheetByName()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("ИмяЛиста")Application.DisplayAlerts = False 'отключаем отображение сообщений об удалении листаws.DeleteApplication.DisplayAlerts = True 'включаем отображение сообщенийEnd Sub
Metoda 2: Odstranění listu indexem
Druhá metoda je založena na odstranění listu podle jeho indexu. Index listu je jeho pořadové číslo mezi ostatními listy v pracovní knize. K odstranění listu podle indexu se používá metoda Delete objektu Worksheets. Příklad kódu:
Sub DeleteSheetByIndex()Dim ws As WorksheetSet ws = ThisWorkbook.Worksheets(3) 'удалить 3-й листApplication.DisplayAlerts = Falsews.DeleteApplication.DisplayAlerts = TrueEnd Sub
Metoda 3: Odstranění všech listů kromě uvedeného
Třetí metoda umožňuje odstranit všechny listy v pracovním sešitu kromě uvedeného. Chcete-li to provést, musíte projít všechny listy ve smyčce a vyvolat metodu Delete pouze pro ty listy, jejichž názvy neodpovídají názvu uloženého listu. Níže je uveden příklad kódu:
Sub DeleteAllSheetsExceptOne()Dim ws As WorksheetDim keepSheetName As StringkeepSheetName = "Сохраняемый лист"Application.DisplayAlerts = FalseFor Each ws In ThisWorkbook.SheetsIf ws.Name <> keepSheetName Thenws.DeleteEnd IfNext wsApplication.DisplayAlerts = TrueEnd Sub
Nyní znáte několik metod odstraňování listů v Excelu VBA. Použijte je ve svých makrech k efektivní správě listů a pracovní knihy.
Práce s aktivním listem
Pro práci s aktivním listem lze použít objekt Sheets. Aktivní list lze získat pomocí vlastnosti ActiveSheet:
- ActiveSheet-vrací objekt aktivního listu
Sub WorkWithActiveSheet()Dim activeSheet As WorksheetSet activeSheet = ActiveSheetMsgBox "Активный лист: " & activeSheet.NameEnd Sub
V tomto příkladu deklarujeme proměnnou Activesheet typu Worksheet a pomocí vlastnosti ActiveSheet nainstalujeme do této proměnné aktivní list. Dále zobrazíme název aktivního listu ve zprávě pomocí metody MsgBox.
Pomocí objektu aktivního listu lze provádět různé operace, jako jsou:
- Čtení a zápis hodnoty buňky
- Změna formátu buňky
- Přidávání a mazání řádků a sloupců
- Kopírování a přesouvání dat
- A další
Chcete-li pracovat s aktivním listem, musíte jej nejprve nainstalovat pomocí vlastnosti ActiveSheet. Poté můžete použít metody a vlastnosti objektu listu k provedení nezbytných operací.
Můžete také použít metodu Worksheets pro práci s listy podle indexu nebo názvu:
- Worksheets (index) - vrací objekt listu podle indexu
- Worksheets ( name) - vrací objekt listu jménem
Sub WorkWithWorksheets()Dim sheet1 As WorksheetDim sheet2 As WorksheetSet sheet1 = Worksheets(1) 'получаем первый листSet sheet2 = Worksheets("Лист2") 'получаем лист с именем "Лист2"MsgBox "Имя первого листа: " & sheet1.NameMsgBox "Имя второго листа: " & sheet2.NameEnd Sub
V tomto příkladu oznamujeme dvě proměnné typu Worksheet-sheet1 a sheet2. Poté pomocí metody Worksheets a parametru, který nás zajímá (index nebo název), získáme objekty listů a nastavíme je do příslušných proměnných. Dále zobrazíme názvy těchto listů ve zprávě pomocí metody MsgBox.
Jak identifikovat aktivní list v Excelu VBA
K určení aktivního listu se v Excelu VBA používá vlastnost ActiveSheet. Tato vlastnost vrací objekt představující aktuální aktivní list.
Příklad použití vlastnosti ActiveSheet:
Sub DetermineActiveSheet () Dim activeWorksheet As Worksheet Set activeWorksheet = Activesheet MsgBox "aktivní list:" & activeWorksheet.Name End Sub
V tomto příkladu, prostřednictvím proměnné activeWorksheet určuje aktivní list a poté prostřednictvím funkce MsgBox zobrazí se zpráva s názvem aktivního listu.
Lze použít i metodu Select pro instalaci aktivního listu:
Sub SelectSheet () Sheets ("List2").Select End Sub
V tomto příkladu pomocí metody Select aktivuje se List s názvem "List2".
Upozorňujeme, že při použití metody Select Chcete-li nastavit aktivní list, musíte zadat název listu, ke kterému chcete přejít.
Identifikace aktivního listu v rámci VBA je nezbytným krokem při práci s listy a umožňuje pohodlné přenos dat mezi různými listy v sešitu.