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
Další články k tématu
- Automatické spuštění skriptu - právě čtete
- Praktické ukázky kódu
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
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
Excel
- Základy MS Excel
- menu Soubor
- Formát dat
- Vložit
- Grafy
- Vzorce (Funkce)
- Matice
- Data
- Revize (Nástroje)
- VBA Úvod a seznamy článků
- VBA Teorie základy
- VBA Buňky cell
- VBA Listy sheet
- VBA Práce se soubory
- VBA Formuláře (UserForm)
- VBA Grafy
- VBA Application
- VBA Pás karet, Menu
- VBA Triky
- VBA praktické příklady kódu
- Praktické příklady
- Finanční poradce
- Šablony - Templates
- Testy
- Ostatní
Google+
Novinky
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í
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.