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

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

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

Tabulka obsluhovaná kódem VBA

Generátor list nastavení

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

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

DUM 05 téma: Úvod do VBA for application

Makra. Orámování oblasti

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...

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

Slíbená princezna. Univerzální ComboBox

Automatická barva písma a výplň bez Bez barvy

3MA481 Propojení Accessu a Excelu David Hach

Visual Basic for Application

8 Makra Příklad 4 Excel 2007

EXCEL VBA. Programování aplikací v Excelu. Aplikační software na PC

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.

Vytvoření nebo odstranění makra Excel

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

Obsah. Část I Začínáme s jazykem AppleScript

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

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

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

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

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

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

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

VBA Excel. Sub UlozV. v příkladech. Ran. Lenka Forstová. Sub CisloOprava() eric(b. i( Dim Bunka. Bunka.Value = End If. Microsoft Next Bunka End Sub

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

Povrchový (obrysový graf)

Office podrobný průvodce. Tomáš Šimek

OSTRAVSKÁ UNIVERZITA P Ř ÍRODOVĚ DECKÁ FAKULTA [ VAWIN ] Vývoj aplikací ve Windows. RNDr. Miroslav Liška, CSc.

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

Parsování HTML. Pro účely testování jsem vytvořil stránku parsovani.html. Zdrojový kód:

POVRCHOVÝ (OBRYSOVÝ GRAF)

Standardní šířka sloupce je průměrná šířka číslic 0-9 standardního písma.

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

MS Excel makra a VBA

Ukázka knihy z internetového knihkupectví

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

Data x Informace x Znalosti

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

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

Dialog Najít a nahradit

Panely pro práci s barvami a ohraničením v Excelu 2003 a 2010

Microsoft Excel 2007 pokročilé metody a funkce

Uživatelský manuál Správce úloh. Verze dokumentu 1.0

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

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

Projekt ININ 2. Jednoduchý systém pro generování a vyhodnocování testů v Excelu. Vedoucí práce: Ing. Vladimír Hanta, CSc.

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

Tabulka jako pozadí na Ploše

Obsah. Seznámení s prostředím Excelu. Poděkování 25 O přiloženém CD 26 Co je na CD 26 Použití CD 26 Systémové požadavky 26 Podpora 27

Č í 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.

FORMÁTOVÁNÍ 1. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Manuál k aplikaci WANAS

LEKCE 3. Uživatelské funkce (UDF) V této lekci najdete:

Sloučená buňka kolik vidíte v ohraničené oblasti celkem čtverců?

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.

Nové kreativní týmy v prioritách vědeckého bádání CZ.1.07/2.3.00/ Tento projekt je spolufinancován z ESF a státního rozpočtu ČR.

Star Trek Do temnoty (infografika na panelu)

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

Analýza dat na PC I.

Tabulka aneb Seznam čili ListObject

www. www g. r g ad ra a d.c a. z Kniha obsahuje tato témata: Příklady k procvičování zdarma ke stažení na

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

Ukázka knihy z internetového knihkupectví

Návod k obsluze. Infračervený dálkový ovladač. memo RC.1 memo RC.2

Obsah. Základy práce s databází 13. Tabulky 43. Obsah. Úvod 9 Poděkování 12

Barvy ve VBA jsou tématem, které dokáže nadchnout, nudit i otrávit. Každopádně se mu vyhnout nemůžeme. Pojďme na to. Práce s barvou Záznamník maker

Dialog Vzhled stránky

VÝŘEZ OBLASTI BUNĚK VZORCEM

UMÍME TO S POČÍTAČEM - test k IT dovednostem

Úvodní kód VBA berte na tomto místě spíš jako informativní, i když je okomentovaný, smysl má odkrokovaný a to za současného sledování dění na listu.

Vzorec. Operátory v Excelu. Operátor přiřazení

Ukázka knihy z internetového knihkupectví

Návod - SALUS ERT50 TRIAC (tiché relé)

Obsah. Lekce 1 Základy jazyka VBA Proměnné Důležité konstrukce VBA použité v knize Shrnutí...20

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

KONTROLA VSTUPŮ / ČASOVÁ PREZENCE OBRAZOVKA WEBU. Uživatelský manuál

verze: 4.0 Březen, 2011

JAK PROPOJIT R-KO a EXCEL aneb Aby se uživatel nasytil a statistik zůstal celý

Jako skript se nabízí BAT soubory, VBScript či PowerShell. Zpracovány jsou druhé dva.

Rozdílová dokumentace k ovládání IS KARAT.net

'============================================================== Data\Priklady\04_Zpracovani_dat\ ' Název souboru 04_01_Comparison.

Stručný manuál k ovládání programu STATISTICA. Mgr. Petra Beranová Ing. Miloš Uldrich

Přídavný modul čtečky ClearReader +

Pokyny pro projektování zařízení ElZaS 21

Tematický celek 03 - Cvičné příklady

Helios RED a Internetový obchod

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

Instalační příručka pro přístupový bod Powerline 500 WiFi XWN5001

O bsah. Ú vod 1. Co b y ste m ě li v ě d ě t n a ú v o d 5. E d ito r jazy k a V isual basic, č ást I 15. P r o s tř e d í j a z y k a VBA 13

mitesemo Popis programu pro komunikační zařízení

Dodatek k návodu k obsluze a instalaci kotlů BENEKOV. Regulátor RKU 3

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:

Programování v Excelu 2000, 2002, 2003

Informatika pro moderní fyziky (7) Tvorba textových dokumentů

Josef Pecinovský PowerPoint 2007

ELEKTRONICKÝ PODPIS VE WORDU

Transkript:

Activate a Select jsou sesterské metody, se kterými se potkáváme pod VBA. Jejich cílem je zjednodušeně řečeno vybrat objekt. My se budeme zabývat aktivací (výběrem) oblasti buněk a (ouška) listu v Excelu. Na metodu Select narazíme už ve výstupním kódu ze Záznamníku maker (Excel 2010). Příklad ukazuje výběr Listu1, buňky B5, a následné obarvení jejího pozadí na žluto. Sub Makro1() ' ' Makro1 Makro ' Sheets("List1").Select Range("B5").Select With Selection.Interior.Pattern = xlsolid.patterncolorindex = xlautomatic.color = 65535.TintAndShade =.PatternTintAndShade = End With Nahrané makro tedy nejprve vybírá List1 (Select, klepli jsme na ouško listu), buňku B5 (Select, klepli jsme na buňku myší), a následně pracuje s výběrem (Selection, konstrukce With..End With). Jak si ukážeme, celá stavba makra je ale zbytečně komplikovaná a lehce nebezpečná. Navíc, v případě výběru listu bychom se měli bavit spíše o jeho aktivaci (metoda Activate). Začínající programátor, který příklad odkouká ze Záznamníku maker, pak použije něco v tomto duchu: Sub KlasickyPriklad() 'aktivace třetího listu Worksheets(3).Activate 'výběr oblasti B2:D6 aktivního listu Range("B2:D6").Select Excelplus.NET 1

'práce s pozadím (vybrané oblasti) Selection.Interior.ColorIndex = 6 Selection.Interior.ColorIndex = xlnone Nevýhody Jestliže zapomenete na aktivaci požadovaného listu a u objektu Range neuvedete rodiče, dosadí si za něj Excel aktivní list. Pokud nevyberete oblast buněk, může se stát, že pod objektem Selection bude třeba obrázek. Neustálé přepínaní se mezi listy a výběry buněk velmi výrazně zpomaluje vaši proceduru (dochází k překreslování obrazovky a musíme sáhnout po známé syntaxi Application.ScreenUpdating = False). Pozn. Výběr nelze provádět na neaktivním listu. Sub SelectNeaktivniList() 'výběr nelze provádět na neaktivním listu 'chyba Worksheets(3).Range("B2:D6").Select Rozdíl mezi Activate a Select se dobře demonstruje na oblasti buněk. Sub RozdilActivateSelect() 'výběr oblasti B2:D6 aktivního listu Range("B2:D6").Select 'lze, nepoužívá se 'Range("B2:D6").Activate 'aktivace buňky B5 (se zachováním výběru) Range("B5").Activate Excelplus.NET 2

Metoda Select aplikovaná na výběru a Activate na buňce tohoto výběru Ručně lze změny aktivní buňky ve výběru docílit klávesou TAB nebo například klávesovou zkratkou CTRL +. (tečka), která prochází rohové buňky výběru. A teď průšvih, na který mě upozornil klient v nefunkčním kódu. Představme si, že druhý list ze tří je skryt. Skrytý list a chování metod Select a Activate Sub BugPrikladA() 'tři listy, druhý skrytý Worksheets(1).Select Excelplus.NET 3

'aktivace druhého viditelného, tedy třetího listu! Worksheets(2).Activate 'chyba: Worksheets(2).Select 'aktivace třetího listu Worksheets(3).Activate Worksheets(3).Select A vyložený bug: Sub BugPrikladB() 'tři listy, druhý skrytý 'aktivace druhého viditelného, tedy třetího listu! Worksheets(2).Activate 'při krokování hodnota zapsána do třetího listu! 'při spuštění celé procedury zapsána hodnota do druhého listu! Cells(1) = 10 Abyste měli vše pod kontrolou, zvykněte si používat objektové proměnné (pro přiřazení nutný příkaz Set). Sub KlasickyPrikladLepe() Dim wshlist As Worksheet Dim rngoblast As Range 'zde pouze pro ukázku! Excelplus.NET 4

'přiřazení třetího listu do objektové proměnné Set wshlist = Worksheets(3) 'přiřazení oblasti buněk do objektové proměnné Set rngoblast = wshlist.range("b2:d6") 'žádný Activate pro třetí list... 'žádný Select pro oblast buněk... 'práce s pozadím (vybrané oblasti) 'konstrukce With..End With With rngoblast.interior.colorindex = 6.Interior.ColorIndex = xlnone End With Uvedenou techniku používejte i v rámci přenosu dat mezi dvěma listy a oblastmi (zpravidla zdroj a cíl). Na aktivní list se sice můžete odvolat jako na ActiveSheet, nicméně tento postup doporučuji jen v případě jistoty volání procedury z daného listu (makro přiřazené tlačítku) nebo u obecných maker. V případě obsluhy dvou různých sešitů definujte objektovou proměnnou i pro ně a nespoléhejte se pokud možno na odkaz ActiveWorkbook (aktivní sešit). Naopak vhodný je odkaz na ThisWorkbook (sešit nebo doplněk, z něhož je makro voláno). K aktivní buňce (aktivního listu) můžete přistoupit přes ActiveCell. Objektovou proměnnou na úrovni aplikace se zde nebudeme zabývat. Pozn. Pro objekt ActiveSheet nefunguje pod VBA automatický seznam členů (nabídka po zápisu tečky). Sub AktivniObjekty() Dim wkbsesit As Workbook Dim wshlist As Worksheet Dim rngbunka As Range 'přiřazení aktivního sešitu do objektové proměnné Set wkbsesit = ActiveWorkbook Excelplus.NET 5

'přiřazení sešitu, v němž leží tato procedura 'do objektové proměnné 'Set wkbsesit = ThisWorkbook 'přiřazení aktivního listu do objektové proměnné Set wshlist = ActiveSheet 'přiřazení aktivního buňky do objektové proměnné Set rngbunka = ActiveCell Ačkoliv to v proceduře uvedeno není, nezapomínejte na konci práce korektně objektové proměnné resetovat (uvolňovat pro ně vyhrazenou paměť) příkazem Set objpromenna = Nothing. Tipy pro odkazy na sešit a oblast buněk: Sub TipyNaOdkazy() Dim wshlist As Worksheet Dim rngoblast As Range 'není vhodné spoléhat se na pořadí 'nepřehledné Set wshlist = Worksheets(3) 'lépe je použít název Set wshlist = Worksheets("List3") 'nejlepší je odkazovat se na kódové jméno listu 'kdy není potřeba ani objektová proměnná 'viz VBA, okno Properies 'vlastnost Name pro vybraný modul listu wshmujlist.range("b10") = "mrkev" 'odkaz na pojmenovanou buňku 'viz Definované názvy na listu wshmujlist.range("mojebunka") = "celer" Excelplus.NET 6

Kódové jméno listu V případě kódového jména listu se tak nemusíte bát, že vám někdo listu přejmenuje. Odkaz na pojmenovanou buňku zajistí platnost odkazu i v případě posunu buňky. Zlozvyk číslo jedna máte tedy za sebou a nyní k dalšímu kopírování hodnot. Sub PrikladKopirovaniHodnoty() 'zkopírování buňky B5 Range("B5").Copy 'aktivace třetího listu Worksheets(3).Activate 'vložení hodnoty do buňky B10 Excelplus.NET 7

Range("B10").PasteSpecial (xlpastevalues) 'zrušení režimu kopírování Application.CutCopyMode = False Pokud kopírujeme něco jiného, než čistě hodnotu, pak se práci s Copy/Paste nevyhneme. Nicméně pro přenos hodnot/vzorců (Value, Formula) se nabízí mnohem efektivnější způsob. Sub PrikladKopirovaniHodnotyLepe() 'přímé převzetí obsahu buňky Worksheets(3).Range("B10").Value = Worksheets(1).Range("B5").Value Jak prosté. I zde bychom měli lépe řídit zdroj a cíl přes objektovou proměnnou. Podotýkám, že takto je možné pracovat i se skrytým listem. Pozn. Metoda Copy umožňuje přímé zadání cíle. Sub PrikladKopirovaniBunky() 'překopírování buňky Worksheets(1).Range("B5").Copy Worksheets(3).Range("B10") Nyní příklady na vytváření nového sešitu. Sub NovySesit() 'vytvoření nového sešitu 'stane se aktivním Workbooks.Add 'práce s novým sešitem... ActiveWorkbook.Worksheets(1).Cells(1) = 10 Excelplus.NET 8

Sub NovySesitLepe() Dim wkbnovysesit As Workbook 'vytvoření nového sešitu 'a jeho přiřazení do objektové proměnné Set wkbnovysesit = Workbooks.Add 'práce s novým sešitem... wkbnovysesit.worksheets(1).cells(1) = 10 Sub NovySesitZKopieListu() 'vytvoření nového sešitu z kopie stávajícího listu Worksheets(1).Copy 'práce s listem... ActiveSheet.Cells(1) = 10 Sub NovySesitZKopieListuLepe() Dim wshsesit As Workbook Dim wshlist As Worksheet 'vytvoření nového sešitu z kopie stávajícího listu 'a jeho přiřazení do objektové proměnné 'nelze uskutečnit, metoda Copy nevrací objekt 'Set wshlist = Worksheets(1).Copy 'vytvoření nového sešitu z kopie stávajícího listu Worksheets(1).Copy 'přiřazení aktivního listu do objektové proměnné Excelplus.NET 9

Set wshlist = ActiveSheet 'přiřazení sešitu do objektové proměnné (odkaz na rodiče) Set wshsesit = wshlist.parent 'alternativně 'Set wshsesit = ActiveWorkbook 'práce s listem... wshlist.cells(1) = 10 Doufám tedy, že tímto článkem už jste si vybrali tu správnou cestu a že daný režim zůstane aktivován. A nezapomínejte, že Záznamník maker je dobrý sluha i pro pokročilé programátory, ale špatný pán. Excelplus.NET 10