Přejít na hlavní obsah

Excel VBA: práce s listy a pracovní knihou

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.