Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-priklady-kodu » vba-excel-automaticke-spusteni-skriptu

Excel VBA - automatické spuštění skriptu

Jak nastavit Excel VBA, aby se po spuštění spustil patřičný skript...

Článek aktualizován a doplněn.

Úvod

Chceme-li aby při spuštění MS Excel vykonal nějakou činnost. Máme volbu:

  • Provedení skriptu pokaždé - tj. pokud soubor bude spuštěn ručně, nebo vzdáleně skriptem.
  • Provedení skriptu jen při ručním spuštění - tj. pokud soubor bude spuštěn skriptem nebude požadovaná činnost vykonána.
  • Provedení skriptu automaticky - pouze při otevření skriptem.

Automatické spuštění skriptu při otevření sešitu

Při automatickém i ručním spuštění tohoto souboru.

Jak na to? Úplně jednoduše do ThisWorkbook vložíme následující kod:

Private Sub Workbook_Open()
    MsgBox "office.lasakovi.com"
End Sub

Poznámka: Po spuštění excelu se nám zobrazí dialogové okno s textem: "office.lasakovi.com". Tj. při události (otevření sešitu) se spustí požadovaný kod (zobrazení dialogového okna).

Automatické spuštění skriptu při "ručním" volání.

Skript bude proveden pouze pokud soubor bude spuštěn ručně.

Jak na to? Použít příkaz Auto_Open, vložit do modulu

Sub Auto_Open() MsgBox "spuštěno ručně" End Sub

Spuštění skriptu v souboru volaným skriptem.

Kód doplnit do skriptu, který tento soubor volá...

Závěr

Tento text je napsán záměrně jelikož se mi množily dotazy jak spouštět makro při otevření Excelovského souboru. Předpokládám, že umíte spustit Visual Basic a víte jak vložit do ThisWorkbook patřičný kód.

Článek byl aktualizován: 21.01.2012 14:55



| tisk stránky TISK | nahoru NAHORU |
| |

Další články k tématu




Komentáře


Pavel Lasák

Přidáno: 09.03.11 18:01

Pro otevření formuláře při spuštění Excel:
Private Sub Workbook_Open()
On Error Resume Next
Userform1.show
End Sub

Ondřej

Přidáno: 17.03.11 20:54

Dobrý den, bylo by možné nějakým způsobem nastavit automatické vypnutí excelu například po pěti minutách nečinnosti? Děkuji

Pavel Lasák

Přidáno: 18.03.11 18:04

To Ondřej:
Jde třeba takhle. První makro za 30 sec spustí druhé. Druhe pak Excel ukonči:

Sub Ukonci30sec()
Application.OnTime Now + TimeValue("00:00:30"), "MujKonec"
End Sub

Sub MujKonec()
Application.DisplayAlerts = False
Application.Quit
End Sub

Ondřej

Přidáno: 18.03.11 21:38

Dobrý den, tak bohužel toto jsem překopíroval do basicu a nic se po třiceti vteřinách nečinnosti v excelu nestalo. tak nevim, kde je problem.

Pavel Lasák

Přidáno: 19.03.11 13:16

Ondřej: Je potřeba spustit makro Ukonci30sec. Případně spuštění zajistit automaticky při spuštění MS Excel viz tento článek. tj. MsgBox "office.lasakovi.com" nahradit Application.OnTime Now + TimeValue("00:00:30"), "MujKonec"

Ondřej

Přidáno: 20.03.11 05:34

Dobrý den, děkuji za radu. O to mi právě šlo. Jen mi nyny píše Excel při automatickém spuštění prvního makra - nelze najít makro MujKonec. Přitom jsem oba příkazy správně zadal do basicu. Díky

Pavel Lasák

Přidáno: 20.03.11 10:02

To Ondřej: Máte MujKonec v "Module1" tj. Když si zobrazíte makra musíte vidět makro "MujKonec" ne "ThisWorkbook.MujKonec"

Pavel Lasák

Přidáno: 20.03.11 10:15

To Ondřej: ukázka http://www.uloz.to/8356028/ukonci-excel-xlsm

Ondřej

Přidáno: 20.03.11 20:38

Děkuji za příklad. Jen bych poprosil ve verzi 97-miček. XLSM nemohu otevřít.

Pavel Lasák

Přidáno: 22.03.11 19:01

To Ondřej: tak i ve verzi 97... http://www.uloz.to/8388545/ukonci-excel-xls

fugisk

Přidáno: 08.01.12 16:14

daju sa pouzit i makra : Sub auto_open() ... Sub auto_close() ...

Pavel Lasák

Přidáno: 09.01.12 20:05

To fugist: To je pravda, ale Auto_Open se spustiti pouze při otevření sešitu ručně, u Workbook_Open funguje i když spustím pomocí kódu z jiného sešitu.

Karel

Přidáno: 21.01.12 11:25

Dobrý den, já mám opačný problém. Jak zajistit, aby se u sešitu, které automaticky spouští makro, se toto makro nespustilo, když ho otvírám pomocí kódu z jiného sešitu příkazem Workbooks.Open Filename:="xxx" Děkuji za radu.

Pavel Lasák

Přidáno: 21.01.12 14:31

To Karel: Použít příkaz Auto_Open, vložit do modulu Sub Auto_Open() MsgBox "spuštěno ručně" End Sub

Zbynek

Přidáno: 23.02.12 11:00

Mohl bych poprosit o radu, nedaří se mi napsat makro, které by vkládalo do buňky text, pokud bude do jiné buňky vložel konkrétní text. Pokud Ai = "Podmínka" pak Bi = "vložený text" a to aby to makro běželo pořád a pro všechny řádky. Takže kdykoliv by někdo vložil do jakékoliv řádky sloupce A text "Podmínka", tak by se ve stejné řádce sloupce B napsalo "vložený text. Děkuji moc.

Pavel Lasák

Přidáno: 24.02.12 18:05

To Zbyněk: Musít reagovat na událost změna v listu viz http://office.lasakovi.com/excel/vba/vlastnosti-metody-udalosti-kolekce-excel-vba/.

Pavel Lasák

Přidáno: 06.03.12 14:41

Spuštění skritpu v jiném sešitě: Application.Run "jiny.xlsm!MojeMakro"


Přidání nového komentáře




(vlož číslo šest)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky a URL. Děkuji za pochopení.
Děkuji, za Vaše komentáře.

Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu.




Nejnovější článek

Z článku o excel jsem jako poslední přidal či upravil článek 14.05.2012:
Kombinování funkcí - vzorců.

Nejčtenější článek




Google+

  

Facebook

facebook  

Novinky

Word: 12.5.2012:
Matematické rovnice (vzorce) - Word 2010

Excel: 14.05.2012:
Kombinování funkcí - vzorců

Access: 28.04.2012:
VBA - Jak spustit v MS Access

Power Point: 25.04.2012:
SmartArt - PowerPoint 2010

Outlook 26.04.2012:
Outlook 2010 - jak vypadá

Project: 05.04.2012:
Kalendář ukázka

OneNote: 17.10.2010:
OneNote 2010 – popis obrazovky

Office 30.04.2012:
Kde hledat odpovědi na dotazy o MS Office

Poděkování

Poděkování patří hlavně mojí nejbáječnější manželce.

LinkedIN

Translate

     

Stránky o MS Office produktu společnosti Micosoft. Neslouží jako technická podpora.
| Email na autora: lasak@centrum.cz | Copyright © : Pavel a Danka 2006 - 2012 |
| Doporučuji: Advokátní kancelář Brno - Dana Lasáková | 1512

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.