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

Jste zde: Úvodní stránka » excel » vba-grafy » excel-vba-vytvoreni-grafu

vytvoření grafu pomocí VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Jednoduchý příklad jak pomovcí VBA vytvořit graf.

Úvod do grafů ve VBA

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.

Přípravy

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.

MS Excel 2010 - graf pomocí VBA

Makro

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
MS Excel 2010 - graf pomocí VBA

Ke stažení

Hotový příklad ke stažení: Graf pomoci VBA makra. soubor ve formátu *.xls

Článek byl aktualizován: 19.09.2020 11:06

Odměna

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.


Pavel Lasák - autor webu

Pavel Lasák

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

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Luke

Přidáno: 01.11.11 19:11

Zdravim. Neni to jen pro office 2007? V 2003 mi ten graf nějak nefunguje..

Pavel Lasák

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"

Luke

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

Pavel Lasák

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

Honza

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

Pavel Lasák

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/

Rob

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.

Pavel Lasák

Přidáno: 28.12.12 14:50

To Rob: Něco podobného nepostačí? Označit bod na křivce v grafu.

Rob

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.

Pavel Lasák

Přidáno: 03.01.13 16:15

To Rob: Tento problém jsem zatím neřešil, zkusím zapřemýšlet.

Rob

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.

Klára

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?

Michal

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.

Michal

Přidáno: 01.02.14 17:27

Uz nic vyresil jsem to pomoci dynamickeho grafu

Jarek

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

Jabi

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

Jakub

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

stefan

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







Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

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