MsgBox, InputBox, FileDialog, Pravomoci vlastních funkcí (UDF) Function TESTOVKA() 'dialog (MsgBox) TESTOVKA = MsgBox("Baf!

Podobné dokumenty
Odstavení automatického zpracování hypertextových odkazů

Generátor list nastavení

MS Excel makra a VBA

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Excel Board příprava. ProExcel.cz Excel Board výuková a prezentační tabule pro Excel 1

DUM 06 téma: Tvorba makra pomocí VBA

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Obsahy kurzů MS Office

ZŠ ÚnO, Bratří Čapků 1332

8 Makra Příklad 4 Excel 2007

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

Hromadná změna datumu a času v buňkách

Dialog Vzhled stránky

Výběr složek a souborů ve VBA

Slíbená princezna. Univerzální ComboBox

Microsoft Word základní

Řešení. ŘEŠENÍ 36 Výsledková listina soutěže

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

3MA481 Propojení Accessu a Excelu David Hach

V článku Skrytý obsah na listu (1) jsme se zabývali obecnými možnosti skrývání obsahu. Dnes se na dané téma podíváme prakticky.

Visual Basic for Application

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Spojování textových řetězců na listu

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Jeden z mírně náročnějších příkladů, zaměřený na úpravu formátu buňky a především na detailnější práci s grafem (a jeho modifikacemi).

Ukázka knihy z internetového knihkupectví

Předmluva 11 Typografická konvence použitá v knize Úvod do Excelu

Č í sla slovy 1.3. verze dokumentu: vytvořil: Ing. Pavel Randák předmět: Uživatelský manuál vydavatel: Austro-Bohemia, s.r.o.

Makra. Orámování oblasti

Obsah. Úvod 15. Úvod do Excelu Práce se sešity 35

Tabulka obsluhovaná kódem VBA

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

VÝŘEZ OBLASTI BUNĚK VZORCEM

Článek je napsán pro českou verzi Excelu 2010, ale věřím, že i v jných verzích si dovedete poradit.

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

5 Tabulky a seznamy dat Příklad 3 Excel 2010

KAPITOLA 8 TABULKOVÝ PROCESOR

Obsah. Několik slov o Excelu 2007 a Operace při otvírání a ukládání sešitu 15. Operace s okny 27. Kapitola 1

VKLÁDÁNÍ OBJEKTŮ - tabulka

František Hudek. duben Informační a komunikační technologie MS Excel Úvod do Excelu I. Seznámení s pracovním prostředím aplikace MS Excel.

OBSAH Úvod do VBA... 6 K čemu VBA... 6 Když VBA nestačí... 6 Historie Visual Basicu... 7 Objektový model, vlastnosti, metody, události a funkce...

ExcelVBAmodul. Podpora pro výměnu dat automatů MICROPEL s aplikací Microsoft Excel

Struèný obsah. Základní průprava. Vývoj aplikací v Excelu. Základy jazyka Visual Basic for Applications. Práce s vlastními dialogy (UserForms)

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Programujeme v softwaru Statistica

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Odstranění řádků (na základě hodnoty)

Excel 2007 praktická práce

Formátování obsahu adminweb

Jak vložit obrázek do oblasti buněk

Empty, Null, Nothing, Missing, prázdný řetězec a buňka

10 Algoritmizace Příklad 2 Word 2007/ VBA

Níže uvedená tabulka obsahuje technické údaje a omezení aplikace Excel (viz také článek Technické údaje a omezení aplikace Excel (2007).

Obsah. 1 Úvod do Visia Práce se soubory 47. Předmluva 11 Typografická konvence použitá v knize 13

Pracovní sešit MS Word pokročilý

Různé barvy v grafu pro skutečnost a plán

PRACOVNÍ SEŠIT MS EXCEL KOMPLET. Optimálním doplňkem stálého vzdělávání jsou elektronické kurzy.

T6: Program MS Excel II. (standard) Určeno pro získání standardní úrovně znalostí (2 4 hodiny)

'je zobrazen stavový řádek? blnstavovyradekzobrazen = Application.DisplayStatusBar. Excel stavový řádek

Různé barvy v grafu pro skutečnost a plán

Povrchový (obrysový graf)

Excel - databáze. Opakování. Soubor, který jsme upravovali. Upravený soubor. Hrubá mzda = počet kusů * Kč za kus B6=B4*B5

Na úvod tip, jak kontrolovat šířku tabulky před a po změně. Chování makra ukazují obrázky. Jak změnit rastr v hotové tabulce Excelu

KAPITOLA 1 Několik slov o Excelu Pás karet 10 Panel nástrojů Rychlý přístup 11 Tlačítko Office 11

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Základní vzorce a funkce v tabulkovém procesoru

Popis programu EnicomD

Gymnázium Jana Pivečky a Střední odborná škola Slavičín. III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT

Ukazka knihy z internetoveho knihkupectvi

Registrační číslo projektu: CZ.1.07/1.5.00/ Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Evropský zemědělský fond pro rozvoj venkova: Evropa investuje do venkovských oblastí. v cestovním ruchu P3. Pavel Petr Petr.USII@upce.

POVRCHOVÝ (OBRYSOVÝ GRAF)

František Hudek. duben Informační a komunikační technologie MS Excel Úvod do Excelu II. Základy práce s listy a buňkami.

Ukazka knihy z internetoveho knihkupectvi

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

9 Úprava maker Příklad 4 Word 2007/ VBA

Analýza dat na PC I.

OPERACE S DATY Autor: Mgr. Dana Kaprálová Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika

Školení obsluhy PC stručný manuál obsluhy pro používání PC

Visual Basic for Applications

K8055D.DLL v Technická příručka. Úvod. Obecné. Konvence volání. Nastavení adresy karty

Popis výukového materiálu

EXCELentní tipy a triky pro mírně pokročilé. Martina Litschmannová

Informace k e-learningu

6. Statistica (pokračování) Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

Manuál k ovládání aplikace INFOwin.

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_03_IVT_MSOFFICE_02_Excel

Tlačítka a další prvky vestavěných panelů nástrojů a nabídek (CommandBar) a jejich Control ID ve verzi Excel 2010

Dialog Najít a nahradit

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Úvod 13. Seznámení s PowerPointem 15. K čemu slouží PowerPoint a prezentace 16 Obvyklé využití prezentací 17 Možnosti publikování prezentací.

Transkript:

Při výkladu funkcí (Function) ve VBA se na první místě zmiňuje, že na rozdíl od procedur (Sub) vracejí hodnotu a vyskytují se tak často na pravé straně příkazů přiřazení. A stejně jako procedury, které tajně mohou propašovat ven hodnoty prostřednictvím veřejných proměnných nebo přebírání argumentů odkazem (ByRef), tak i funkce mají svá tajemství. Pokud je užijeme na listu, stávají se dospělými uživatelskými funkcemi (UDF) a měly by se krotit ve svém chování. Jejich výsledky neopouští místo, odkud jsou volány, tzn. buňky (viz Application.Caller), a jejich užití neovlivňuje ani prostředí aplikace. Je tomu tak vždy? Pojďme se podívat na jejich čertovské kousky, když se nikdo nedívá MsgBox, InputBox, FileDialog, 'dialog (MsgBox) TESTOVKA = MsgBox("Baf!") Vlastní funkce MsgBox As String 'dialog s textovým polem (InputBox) TESTOVKA = Application.InputBox("Kdo jsi?", "Identifikace") ProExcel.cz

Vlastní funkce InputBox 'dialog pro výběr souboru With Application.FileDialog(msoFileDialogFilePicker).AllowMultiSelect = False.Show 'vrací cestu k vybranému souboru TESTOVKA =.SelectedItems() End With ProExcel.cz

Vlastní funkce FileDialog CommandBars a Dialogs 'zobrazení panelu 'nestandardní chování po uzavření 'zde Vložit symbol Application.CommandBars.FindControl(ID:=0).Execute TESTOVKA = "Hej!" Vyvolávání panelů ve funkcích může způsobit neočekávané stavy. Excel často v danou chvíli jednoduše neočekává jejich zobrazení a neumí si poradit se sledem událostí v souvislosti s editací buňky. Vestavěné dialogy kolekce Dialogs se mi nepodařilo z funkcí vyvolat. Komentáře 'komentář v buňce, lze nastavit i pro jinou buňku Application.Caller.AddComment "Jupí!" TESTOVKA = "Jejda!" Vlastní funkce komentář Zjednodušeně lze říci, že vykreslované objekty lze ve funkcích na listu použít. A ano, takový komentář lze například vložit do sousední buňky (Application.Caller.Offset(0, )) Ověření ProExcel.cz

0 'ověření, lze nastavit i pro jinou buňku With Application.Caller.Validation.Delete.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, _ Operator:=xlBetween, Formula:="první;druhá".IgnoreBlank = True.InCellDropdown = True.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "".ShowInput = False.ShowError = False End With TESTOVKA = "Šmarjá!" Pro ověření samozřejmě platí, že výsledek funkce nesmí být v rozporu s pravidly ověřování. Vlastní funkce ověření Obrazce 'nakreslení tvaru ActiveSheet.Shapes.AddShape msoshapecorner,, 0,, 0 TESTOVKA = "Nakresleno!" ProExcel.cz

Vlastní funkce obrazec Grafy 'vložení grafu ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlcolumnclustered ActiveChart.SetSourceData Source:=Range("List!$C$:$E$") TESTOVKA = "Safra!" Vlastní funkce graf ProExcel.cz

Barva pozadí a ohraničení buňky Nenašel jsem způsob, jak ve funkci úspěšně nastavit barvu pozadí buňky a to ani podmíněným formátem, který by jinak aplikovat šel. Omezené možnosti má i ohraničení buňky. 'ohraničení, nelze měnit typ a tloušťka čáry With Application.Caller.Borders(xlDiagonalUp).LineStyle = xlcontinuous.colorindex = End With TESTOVKA = "Jaj!" lastní funkce ohraničení Jiné buňky, výběry, odskoky, aktivace Ve funkcích listu nelze měnit výběry a provádět aktivace objektů (.Select,.Activate), ani řídit odskoky přes Applicaton.GoTo nebo hypertextové odkazy. Zakázány jsou také zápisy do oblastí buněk (Range, Cells) nebo manipulace s definovanými názvy (pojmenovanými vzorci). Změny titulků, popisků aj. Jednoznačně není možné říci, co lze a nelze měnit. Kupříkladu stavový řádek se ovlivnit z funkce listu nenechá, na druhou stranu titulek aplikace ano. Application.Caption = "Můj šéf je lump!" TESTOVKA = "Hmm!" Filtry, Tabulky ProExcel.cz

Z funkcí listu není možné si pohrát s automatickým filtrem nebo třeba vložit Tabulku (Seznam). Na druhou stranu vás nechá setřídit oblast. 0 'setřídění oblasti With ActiveWorkbook.Worksheets("List").Sort.SetRange Range("A:A").Header = xlno.matchcase = False.Orientation = xltoptobottom.sortmethod = xlpinyin.apply End With TESTOVKA = "Aha!" Volání procedury Funkce se může odvolávat na jiné funkce a procedury. V tu chvíli pro ně platí stejná pravidla jako pro funkce, ze kterých jsou volány. Ve funkcích je stejně jako v procedurách možné užít v rámci parametrů ByRef, nicméně z funkčního vězení ven nepropašujete žádný moták s hodnotou. 'volání procedury Call Procedura TESTOVKA = "Sláva!" Sub Procedura() MsgBox "Hurá!" End Sub ProExcel.cz

Vlastní funkce volání procedury Nelze načasovat spuštění procedury (Application.OnTime), ani ve funkci přiřadit makro klávesové zkratce (Application.OnKey). Ve funkci listu není možné nastavit události (Applicaton.OnEntry,.OnDoubleClick,.OnCalculate aj.). Excel makra (ExecuteExcelMacro) jsou rovněž odstaveny na druhou kolej. Průšvihy v zabezpečení Ve funkcích listu je možné uplatnit metodu SendKeys pro odesílání virtuálních stisků kláves. 'text následovaný stiskem ENTER SendKeys "Jde to!~" TESTOVKA = "Vida!" Vlastní funkce SendKeys Sekvence je odeslána až po vrácení hodnoty a ukončení editace buňky. ProExcel.cz

Dim strvzorec As String 'vložení vzorec do buňky vpravo strvzorec = Application.Caller.FormulaLocal SendKeys "{UP}{TAB}'" & strvzorec & "~" TESTOVKA = "Vzorec vpravo!" Vlastní funkce SendKeys podruhé Projde i sebedestrukce: SendKeys {UP}^-~. Šokem byla pro mě snadná cesta spuštění prakticky libovolné aplikace přes funkci Shell. 'spuštění aplikace (Poznámkový blok) bez její aktivace ID = Shell("Notepad", vbminimizednofocus) TESTOVKA = "ID" Excel neklade odpor ani při aktivaci nainstalovaného doplňku. 'spuštění doplňku AddIns("Analytické nástroje").installed = True TESTOVKA = "Chi chi!" ProExcel.cz

Vlastní funkce aktivace doplňku Ve funkcích listu je do jisté míry přípustné používat API. 0 Private Declare Function GetUserName Lib "advapi.dll" Alias "GetUserNameA" _ (ByVal lpbuffer As String, nsize As Long) As Long 'výpis aktuálního uživatele Windows Dim struzivatel As String struzivatel = String(00, Chr$(0)) GetUserName struzivatel, 00 struzivatel = Left$(strUzivatel, InStr(strUzivatel, Chr$(0)) - ) TESTOVKA = struzivatel ProExcel.cz 0

Private Declare Sub Sleep Lib "kernel" (ByVal dwmilliseconds As Long) 'pozastavení kódu na sekund Sleep 000 TESTOVKA = "API!" 0 Private Const SND_ASYNC = &H Private Const SND_NODEFAULT = &H Private Declare Function sndplaysound Lib "winmm.dll" Alias "sndplaysounda" _ (ByVal lpszsoundname As String, ByVal uflags As Long) As Long 'přehrání zvuku (asynchronně, nečeká na ukončení procedury) sndplaysound "c:\windows\media\notify.wav", SND_ASYNC Or SND_NODEFAULT TESTOVKA = "Tutú!" Ukázali jsme si, že vlastní funkce nejsou až takové puritánky, za jaké je učebnice Excelu vydávají. Dnešní cvičení berte ovšem za čistě experimentální. V řadě případů vám nikdo nezaručí, jak se Excel zachová poté, co mu hodíte na záda vykutálenou funkci. Problémy mohou nastat při přepočtu (viz také Application.Volatile), při volání událostí ze zásobníku atd. ProExcel.cz