zpět na výpis    domů » excel » Práce s objektem Sheets() ve VBA

Práce s objektem Sheets() ve VBA

Publikováno: 15.6.2017

Práce s objektem Sheets() ve VBA

Při programování aplikací v jazyce VBA se velmi pravděpodobně nevyhnete manipulaci s excelovskými listy. V tomto základním tutoriálu představím metody a vlastnosti pro běžné operace s nimi.

Objekt Sheets()

K manipulaci s listy se používá objekt Sheets(), ke kterému se připojují následující metody a vlastnosti.

Sheets().Select

Výběr listu se provádí pomocí příkazu Sheets().Select. Například výběr listu s názvem List2 zapíšete jako

Sub vyberListu()

Sheets("List2").Select

End Sub

Editor VBA pro psaní kódu vyvoláte kombinací kláves Alt + F11 nebo na kartě Vývojář tlačítkem Visual Basic.

Sheets().Add

Pro přidání nového listu do sešitu se používá metoda Add. Proceduru na nový list v sešitu zapíšete jako

Sub pridatList()

Sheets("List2").Select
Sheets.Add

End Sub

Příklad #1

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

Příklad #2

Pomocí 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

Příklad #3

Další 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

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

Metoda Delete se používá k mazání listů. Chcete-li například smazat list s názvem List2, napíšete následující proceduru

Sub smazatList()

Sheets("List2").Delete

End Sub

Příklad #1

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 naplněno listy s názvy List2 a List3, které budou vymazány.

Sub smazatList()

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

End Sub

Příklad #2

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.

Mazání listů je doprovázeno varovnou hláškou, zda si opravdu přejete list smazat. Hláška je v proceduře potlačena pomocí vlastnosti DisplayAlerts objektu Application.

Option Explicit

Sub smazatList()

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

přidat 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

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.

Líbil se vám článek? A chcete se vědět o každém dalším?

Sledujte:

Nahoru