|
Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Jednoduchý příklad jak pomovcí VBA vytvořit graf.
Někdy je potřeba vytvořit graf pomocí VBA. Jak na to postupně popíšů v následujících článcích. V tomto ukážu jednoduchý kód, který vytvoří graf. V dalších popíšů jak tento graf upravit dle obrazu svého. Na konci článku je k dispozici ke stažení ukázkový soubor.
Než vytvoříme graf potřebujeme tabulku. V našem modelovém příkladu využijeme závislost času a naspořených financí. Viz tabulka, kterou vytvoříme.
Tak a teď napíšeme makro, které nám vytvoří jednoduchý graf.
Sub graf()
' graf Makro
Range("B3:D19").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLineStacked
ActiveChart.SetSourceData Source:=Range("List1!$B$3:$D$19")
End Sub
Hotový příklad ke stažení:
Graf pomoci VBA makra.
Článek byl aktualizován: 19.09.2020 11:06
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Přidáno: 01.11.11 19:11
Zdravim. Neni to jen pro office 2007? V 2003 mi ten graf nějak nefunguje..
Přidáno: 01.11.11 19:23
To Luke: pro verzi 2003
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("List1").Range("B3:D19"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="List1"
Přidáno: 02.11.11 10:58
Jo, dík už to fičí. Není tu někde na stránkách seznam jmen těch typů grafů? Když třeba budu chtít spojnicový, nebo XY bodový, bez spojnice, se spojnicí, sloupcový atd..
Přidáno: 02.11.11 16:04
To Luke: Zatím není, ale píšu si jako další námět na článek...
Přidáno: 14.10.12 23:40
Je nějakým způsobem možné vložit graf do formuláře, aby se okamžitě měnil dle zadávaných hodnot? Děkuji
Přidáno: 15.10.12 16:14
To Honza: Jde viz článek: http://office.lasakovi.com/excel/vba-triky/vba-excel-graf-do-formulare/
Přidáno: 28.12.12 14:30
Mám zdvořilý dotaz. Lze pomocí VBA načíst hodnotu z grafu? Ideální pro mě by bylo označit si šipkou konkrétní hodnotu přímo na křivce grafu (excel ji vypisuje do rámečku) a s tou pak dále pracovat. Zajímá mě dvourozměrný graf, tedy hodnota os x, y. Děkuji.
Přidáno: 28.12.12 14:50
To Rob: Něco podobného nepostačí? Označit bod na křivce v grafu.
Přidáno: 02.01.13 13:40
Děkuji za inspiraci, ale není to ono. Představte si tabulku, kde první sloupec obsahuje pořadové číslo vzorku (osa x v grafu)a druhý sloupec hodnotu vzorku(osa y v grafu). Těch hodnot je hodně, např. 500 000. Pomocí VBA si napřed zobrazím graf celý, např. každou 50-tou hodnotu. Potřebuji si tu křivku prohlížet, posunovat se po ní, funkce lupy atd. To vše už mám vyřešené. Poslední co bych chtěl je označit myší a šipkou konkrétní jeden bod na křivce v oblasti, která mě zajímá. Hodnoty os x a y by se měly automaticky načíst do proměnných VBA tak, abych s nimi mohl dále prácovat. Děkuji za spolupráci.
Přidáno: 03.01.13 16:15
To Rob: Tento problém jsem zatím neřešil, zkusím zapřemýšlet.
Přidáno: 04.01.13 10:24
Děkuji za spolupráci. Ještě popíšu moji představu. Šipkou myší vyberu jeden bod na křivce grafu. EXCEL vypíše hodnoty os x a y do pomocného okénka. Já bych potřeboval, aby VBA EXCEL tyto dvě hodnoty os x a y automaticky načetl do proměnných VBA tak, abych s nimi mohl dále pracovat. Například, stisknutím tlačítka spustím makro, které bude očekávat, že šipkou myší označím bod na křivce. Když to udělám, makro uloží do dvou proměnných hodnoty os x a y. To mě úplně stačí, dál už bych pokračoval sám.
Přidáno: 28.04.13 17:22
jak se zadává jméno ke grafu, jde to i nějak jinak než textovým polem?
Přidáno: 31.01.14 14:00
Ahoj. Super stranky moc mi pomahaji. Potrebuju poradit s grafem ve VBA. Jak udelat aby se zdrojova oblast dat vybrala podle urcite podminky? Napriklad mam hodnoty 1 - 10 A chci udelat graf z hodnot 1-5. Potrebuju aby to bylo univerzalni nemuzu nastavit pevne Range("X:Y") protoze pokazde je pocet radku s pozadovanyma hodnotama jiny. Doufam ze je to srozumitelne. zkousel jsem najit pozadovanou bunku (hranici) Set odkaz = Range("I2:I1000").Find(4) a pak to nacpat do oblasti zdroje dat pro graf ale to nejde.
Přidáno: 01.02.14 17:27
Uz nic vyresil jsem to pomoci dynamickeho grafu
Přidáno: 25.03.15 15:28
Dobrý den, super stránky, mocně mi pomáhají ušetřit čas se zpracováváním dat. Mám jen dotaz, vytvořit graf pomocí makra není problém, ale už se nemohu dopátrat jak sloupcový graf vytvořit tak, aby i zobrazoval hodnoty sloupců (protože v "defaultu" to nedělá. Moje představa co by mělo makro udělat: vytvořit sloupcový graf z pevně stanoveného rozsahu (dva řádky), v rámci grafu zobrazit hodnoty jednotlivých sloupců a super by bylo kdyby každý sloupec měl jinou barvu (v "defultu" mají všechny stejnou - pokud nejsou přidávány jednotlivě jako nová řada). Jde přes makro toto udělat? Prošel jsem vaše ostatní články o úpravě dat v grafech, ale vždy se jedná o hraní si s čísly nebo posun os, toto jsem tam nenašel. Předem děkuji za odpověď.
Přidáno: 16.06.15 22:41
jak zapsat makro, do grafu vložit dvě oblasti, npř. B3:B19 a D3:D19 jak to zapsat, zkusil jsem i nemožné :-) děkuji
Přidáno: 08.10.15 09:54
Dobry den , ctel bych se zeptat jak vytvorit nejaky prepinac ktery po stisknuti toho prepinace na aktualnim listu vytvori graf .. jde me o to aby ten graf sel "zapnout" a i "vypnout" dekuji za odpoved
Přidáno: 15.12.15 18:06
dobrý den Mám graf např.o třech řadách dat. Jak vypnu jen jednu řadu a opět jí zobrazím zkoušel jsem Dim chtSC As SeriesCollection Set chtSC = Worksheets(1).ChartObjects(1).Chart.SeriesCollection chtSC(2).Values = True (false) řada se vypne, ale když dám True, tak se již v grafu nezobrazí děkuji
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2021 |