zpět na výpis    domů » excel » VBA: práce s listy Sheets()

VBA: práce s listy Sheets()

Publikováno: 15.6.2017

VBA: práce s listy Sheets()

Při programování aplikací v jazyce VBA se pravděpodobně nevyhnete manipulaci s listy v excelovském sešitě. Listy lze vybírat, zjistit jejich počet, přidávat nové listy, přiřazovat jim nové názvy, mazat je apod. K manipulaci s listy se používá objekt Sheets(), který je v tomto článku kombinován s metodami Select (vybrat), Add (přidat), Name (pojmenovat) a Delete (smazat).

Sheets().Select v praxi

Výběr listu se provádí pomocí Sheets().Select.

Následující procedura vybere v xls sešitě list s názvem List2. Samozřejmě je potřeba mít v sešitě více než jeden list a mít před spuštěním procedury aktivní jiný list než List2.

Sub vyberListu()

Sheets("List2").Select

End Sub

TIP: Editor VBA pro psaní kódu vyvoláte stisknutím kláves ALT + F11.

Sheets().Add v praxi

Pro přidání nového listu do sešitu se používá metoda Add.

Sub pridatList()

Sheets("List2").Select
Sheets.Add

End Sub

Výše uvedena procedura přidá nový list automaticky před vybraný list. Implicitně je totiž nastavena metoda Before. Pokud chcete přidat nový list za vybraný list, je potřeba explicitně použít parametr After.

Sub pridatList()

Sheets("List2").Select
Sheets.Add After:=ActiveSheet

End Sub

Pomoci parametru Count můžete stanovit počet nově přidávaných listů. Následující kód přidá 3 nové listy za vybraný list.

Sub pridatList()

Sheets("List2").Select
Sheets.Add After:=ActiveSheet, Count:=3

End Sub

Následující procedura vloží nový list za všechny stávající listy v sešitě.

Sub pridatList()

Sheets.Add After:=Sheets(Sheets.Count)

End Sub

Sheets().Name v praxi

K pojmenování listu slouží metoda Name.

Následující procedura vloží nový list za všechny stávající listy a pojmenuje ho jako Poslední list.

Sub pojmenovatList()

Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Poslední list"

End Sub

Sheets().Delete v praxi

K mazání listů v sešitě slouží metoda Delete.

Následující kód smaže list pojmenovany jako List2.

Sub smazatList()

Sheets("List2").Delete

End Sub

Následující procedura odstraní více listů najednou pomocí speciální proměnné pole Array(). Proměnná pole umožňuje pracovat s více prvky současně. Pole je naplneno listy s názvy List2 a List3, které budou vymazány.

Sub smazatList()

Sheets(Array("List2", "List3")).Delete

End Sub

Mazání listu je vždy doprovázeno oknem s varovným hlášením, zda si skutečně přejete list smazat. Tento dotaz lze potlačit pomocí vlastnosti DisplayAlerts objektu Application.

K dosažení uživatelský zajímavého efektu je kód doplněn o časové zpoždění mazání listu pomocí vlastnosti Wait objektu Application.

Následující procedura přidá za poslední list 5 nových listů, aby poté mohl postupně se zpožděním 2 sekund odstranit jednotlivé listy kromě prvního. Okno s upozorněním je potlačeno.

Option Explicit

Sub smazatList()

deklarace proměnných
Dim i As Long, pocetlistu As Long

5 nových listů zprava
Sheets.Add after:=Sheets(Sheets.Count), Count:=5

zjištění počtu listů v sešitě
pocetlistu = Sheets.Count

For i = 1 To pocetlistu - 1
  smazání listu se zpoždění 2 sekundy
  Application.Wait (Now + TimeValue("00:00:02"))

  Application.DisplayAlerts = False
  Sheets(Sheets.Count).Delete
  Application.DisplayAlerts = True
Next i

End Sub

Chcete vědět o každém novém článku? Sledujte Finance v praxi na sociálních sítích a zůstaňte ve spojení.

Google+

Sdílejte článek na sociálních sítích

Použité zdroje a literatura
  • BENÁČANOVÁ H.: Tvorba aplikací v Microsoft Office Excel 2. část. Možnosti VBA. Vysoká škola ekonomická v Praze, nakladatelství Oeconomica 2009, Praha. První vydání, 126 stran. ISBN 978-80-245-1602-8
  • Nápověda k aplikaci MS Excel
Nahoru