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

Jste zde: Úvodní stránka » excel » vba-grafy » maximalni-minimalni-automaticke-nastaveni-os-graf

Nastavení os - Excel VBA
Maximální, minimální, automatické ...

Videokurzy Excel

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

Potřebujete-li pomocí VBA měnit maximální (minimální hodnotu osy).

Doplněno 14.7.2014

Microsoft Excel logo

Úvodem

Při práci s grafy je mnohdy potřeba pomocí VBA nastavit příslušné hodnoty na osách. Jako například minimální hodnotu, maximální hodnotu, případně vrátit automatické nastavené rozsahy pro vybranou osu. Jak na to pomocí VBA je představeno v tomto článku.

Předpokládám že upravovat osy v grafem již umíte. Proto dialogové okno Formát osy nemusím představovat. Poze pro připomenutí jak vypadá v Excel 2010.


Ukázka dialogového okna: Formát osy

Formát osy -  dialogové okno - Excel 2010

Co se dozvíte

Článek je rozdělen do následujících kapitol:

Minimum pro osu y - Primární

Jak na mimimum, využijeme

Axes(xlValue).MinimumScale

Automaticky

Excel přiřadí minimální hodnotu automaticky:

ActiveSheet.ChartObjects("Graf 2").Activate ActiveChart.Axes(xlValue).MinimumScaleIsAuto = True

Požadovaná hodnota

Například "2"

ActiveChart.Axes(xlValue).MinimumScale = 2

Požadujete-li číslo s desetinou hodnotou - nezapomenout na tečku (ne čárka)

ActiveSheet.ChartObjects(2).Chart.Axes(xlValue).MinimumScale = 2.2

Zjištění jak je nastavena aktuální hodnota minima

Zobrazíme například dialogovým oknem:

Dim GrafHodnotaMin As Double ActiveSheet.ChartObjects("Graf 2").Activate GrafHodnotaMin = ActiveChart.Axes(xlValue).MinimumScale MsgBox GrafHodnotaMin

Maximum

Podobně jako u mimimální hodnoty, pro maximální hodnotu využijeme:

Axes(xlValue).MaximumScale

Automaticky

Excel přiřadí maximální hodnotu automaticky:

ActiveSheet.ChartObjects(2).Chart.Axes(xlValue).MaximumScaleIsAuto = True

Požadovaná hodnota

Například "5.2"

ActiveSheet.ChartObjects(2).Chart.Axes(xlValue).MaximumScale = 5.2

Zjištění aktuální hodnoty maxima

Dim GrafHodnotaMax As Double GrafHodnotaMax = ActiveSheet.ChartObjects(2).Chart.Axes(xlValue).MaximumScale MsgBox GrafHodnotaMax

Hlavní a vedlejší jednotka osa y

Příklady pro aktivní graf jehož osu chceme měnit

Hlavní jednotka

ActiveChart.Axes(xlValue).MajorUnit = 0.2

Hlavní jednotka

ActiveChart.Axes(xlValue).MinorUnit = 0.04

Minimum, maximum, jednotky - sekundární osa y

Pro přehlednost přespokládám, že již je vybrán graf, ukázky i s výběrem grafu jsou např. v Minimum osy y

Minimum

Nastavení automaticky

ActiveChart.Axes(xlValue, xlSecondary).MinimumScaleIsAuto = True

Maximum

Nastavení automaticky

ActiveChart.Axes(xlValue, xlSecondary).MaximumScaleIsAuto = True

Hlavní jednotka

Automatické nastavení hlavní jednotky pro sekundární y-ovou osu

ActiveChart.Axes(xlValue, xlSecondary).MajorUnitIsAuto = True

Vedlejší jednotka

Automatické nastavení vedlejší jednotky pro sekundární y-ovou osu

ActiveChart.Axes(xlValue, xlSecondary).MinorUnitIsAuto = True

Maximální a minimální hodnota - x osa

Nastavení maxima a minima pro x osu využijeme:

Axes(xlCategory).MaximumScale Axes(xlCategory).MinimumScale

Minimum

ActiveChart.Axes(xlCategory).MinimumScale = 0

Maximum

ActiveChart.Axes(xlCategory).MaximumScale = 60

Hlavní a vedlejší jednotka - osa x

Pro nastavení hlavní a vedlejší jednotky pro osu x využijeme:

Axes(xlCategory).MajorUnit = 10 Axes(xlCategory).MinorUnit = 2

Praktické nastavení ve aktivním grafu

ActiveChart.Axes(xlCategory).MajorUnit = 20 ActiveChart.Axes(xlCategory).MinorUnit = 4

Maximální hodnota - y osa (hlavní i vedlejší)

Osa y

Axes(xlValue).MaximumScale

Osa y (sekundární)

Axes(xlValue, xlSecondary).MaximumScale

Minimální hodnota - x osa

Osa y (sekundární)

Axes(xlValue, xlSecondary).MinimumScale

Minimální hodnota - y osa (hlavní i vedlejší)

Osa y (sekundární)

Axes(xlValue, xlSecondary).MinimumScale

Automatická hodnota nastavení - x osa

Maximální Osa x - automaticky

Axes(xlCategory).MaximumScaleIsAuto = True

Minimální Osa x automaticky

Axes(xlCategory).MinimumScaleIsAuto = True

Automatická hodnota nastavení - y osa (hlavní i vedlejší)

Maximální Osa y

Axes(xlValue).MaximumScaleIsAuto = True

Maximální Osa y (sekundární)

Axes(xlValue, xlSecondary).MaximumScaleIsAuto = True

Minimální Osa y

Axes(xlValue).MinimumScaleIsAuto = True

Minimální Osa y (sekundární)

Axes(xlValue, xlSecondary).MinimumScaleIsAuto = True

Národní prostředí - problémy s desetiným číslem

Pokud používate hodnoty s desetinými čísly možná narazíte na problém díky lokalním nastavením (tečka, čárka). Proto bude nutné naformátovat číslo.

OsaMaxHodnota = Format(124.3, "Standard")

Jeli již číslo v proměnné OsaMaxHodnota

OsaMaxHodnota = Format(OsaMaxHodnota, "Standard")

Související články a odkazy

Nejen číslené hodnoty můžete na osách měnit, lze měnit i jejich barvu, značky popisky os. Jak na to jsem zatím sesepsal. Osobně jsem nepotřeboval ani podobný dotaz jsem nezaznamenal. Třeba časem články vytvořím a odkazy sem doplním ;)

Ke stažení

Soubor Ukázky jak nastavovat osy pomocí VBA v Excel soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra.

Závěrem

Další příklady se pokusím doplnit na základě dotazů.

Článek byl aktualizován: 01.11.2014 14:09

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, PowerPoint) se věnuji od roku 2000 (od 2004 ne této doméně) - Roku 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 také na on-line videích pro SEDUO. Školím a konzultuji, učím na MUNI. Hlavně tvořím tento web. Je zde k dispozici přes 1.000 návodu, tipů a triků včetně stovek 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


čerešna

Přidáno: 11.10.12 11:19

Dobrý deň, každý týždeň pridávam údaj do tabuľky. Chcela by som, aby sa mi graf automaticky natiahol o jednu číslicu ďalej. Napríklad: graf os x: týždeň 1 až 40 pridám údaj pre týždeň 41 graf os x: týždeň 1 až 41. Ďakujem za odpoveď

Pavel Lasák

Přidáno: 11.10.12 16:38

To čerešna: Třeba přes dynamicky definovanou oblast: http://office.lasakovi.com/excel/funkce/dynamicky-definovana-oblast-pro-graf/ nebo přes VBA,







Sdílejte

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

Nové články


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

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 - 2017 | 8335

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.