
William Charles
0
4761
419
Není úžasné, jak se něco tak jednoduchého, jako je vytváření grafu, může někdy cítit tak komplikované? Ať už používáte Excel, Word, Powerpoint nebo Access - někdy by bylo hezké vložit rychlý graf se spoustou dat, aniž byste museli dělat spoustu konfigurací a zpráv.
V tomto článku vám ukážu, jak používat opravdu pohodlný a jednoduchý objekt VBA z komponent Microsoft Office Web Components, který umožňuje vložit graf přímo do dokumentu, prezentace nebo do čehokoli jiného, kam můžete vytvořit kód VBA a spustit jej. To může také zahrnovat produkty jiných výrobců než Microsoft, které mají back-end VBA, což mnozí dělají.
V tomto příkladu vám ukážu, jak povolit režim návrhu ve vašem programu (v tomto případě použijeme Microsoft Word), vložit objekt grafu do vašeho projektu a poté, jak napsat kód, který jej vyplní s daty.
V některých mých minulých článcích VBA několik z vás uvedlo, že tento úkol byl pro každého, kdo nikdy předtím nenapsal kód, příliš komplikovaný. Doufám, že po přečtení tohoto článku budete mít motivaci vyzkoušet si ruku s VBA. Zde uvedený kód je velmi jednoduchý a snadno zapisovatelný. Vložení tohoto grafu je skvělý způsob, jak si zašpinit ruce pomocí VBA, pokud jste to ještě nikdy nezkusili.
Pokud znáte VBA, pak je to skvělý nástroj pro začleňování rychlých grafů do vašich projektů s mnohem menší námahou než kdykoli předtím.
Aktivace režimu návrhu
V tomto příkladu jsem chtěl sestavit rychlý dokument s vloženým grafem, který zobrazuje data z aktuálního měsíce mého rozpočtu a také průměrný měsíční průměr výdajů za rok.
V tomto příkladu uvedu tyto hodnoty pevně do kódu “pole” přímo uvnitř kódu VBA, ale nakonec můžete pomocí různých technik načíst tyto proměnné pole (pole je jednoduše proměnná, která obsahuje seznam hodnot) z jiných zdrojů, jako je externí tabulka nebo dokonce formulář, do kterého zadáte hodnoty ručně každý měsíc.
Chcete-li se dozvědět, jak importovat data do aplikace Word z Excelu, podívejte se na můj článek Jak integrovat data Excelu do dokumentu Word Jak integrovat data Excelu do dokumentu Word Během pracovního týdne je pravděpodobně mnoho časů, kdy se ocitnete při kopírování vkládání informací z Excelu do Wordu nebo naopak. Takto lidé často vytvářejí písemné zprávy ... na toto téma. Pro účely tohoto článku se zaměříme na vytvoření grafu pro zobrazení dat.
Nyní, když jsem začal svůj dokument, chci se dostat do kódu. V aplikaci Word nebo Excel to provedete kliknutím na “Soubor”, “Možnosti” a potom klikněte na možnost Přizpůsobit pás karet. Na pravé straně možností uvidíte “Přizpůsobte pás karet” sloupec a ve sloupci “Hlavní karty” pole, které byste měli vidět “Vývojář” nezaškrtnuto. Zaškrtněte toto políčko.
Zpět na dokument byste nyní měli vidět “Vývojář” položka nabídky je k dispozici. V této nabídce najdete “Režim návrhu” tlačítko.
Klikněte na Návrhový režim a poté na ikonu složky / nástroje “Starší nástroje”, a poté v pravém dolním rohu vyskakovacího pole v části Ovládací prvky ActiveX klepněte na ikonu “Více ovládacích prvků” tlačítko.
Rolujte seznamem dostupných ovládacích prvků, dokud se nedostanete na “Tabulka Microsoft Office xx.x”. Pokud máte v počítači nainstalovanou sadu Microsoft Office, bude tento ovládací prvek pravděpodobně k dispozici.
Jakmile vložíte ovládací prvek do dokumentu, uvidíte, že se zobrazí jako pole, které říká “Webové součásti sady Microsoft Office” uvnitř. Toto je v podstatě váš prázdný graf, připravený k zobrazení vašich dat.
Dalším krokem je zapsání kódu, který nastaví typ grafu, a zobrazení dat. Pokud chcete, aby byl tento proces manuální, můžete na dokument umístit tlačítko, které by data načítalo do grafu, ale v mém případě jsem chtěl, aby byla celá věc automatizovaná. Ve chvíli, kdy otevřete dokument, jsem chtěl, aby spustil skript, který načte graf, takže to můžete udělat v kódu (kliknutím na tlačítko jazyka se dostanete do editoru kódu) a výběrem objektu dokumentu a “otevřeno” událost.
Tím automaticky zavoláte prázdnou funkci “Document_Open ()” do vašeho kódu. Do této funkce chcete vložit následující kód.
Soukromý dílčí dokument_otevřený () Dim i As Integer Dim oChart Dim oSeries1 Dim oSeries2 'Vytvořte pole pro hodnoty x a y Dim xValues As Variant, yValues1 As Variant, yValues2 As Variant xValues = Array („Electric Bill“, „Hypotéka“, „Bill za telefon“, _ "Bill za vytápění", "Potraviny", _ „Benzín“, „Oblečení“, „Nakupování“) yValues1 = Array (124,53, 1250,24, 45,43, 253,54, 143,32, 259,85, 102,5, _ 569,94) yValues2 = Array (110, 1250, 50, 200, 130, 274, 95, _ 300)
Tato část kódu vytvoří tři pole. První (xValues) je v podstatě váš seznam popisů osy x pro každý datový prvek. V mém případě vytvářím sloupcový sloupcový graf s yValues1, ale můžete také vytvořit čárový graf. Ukážu vám, jak to udělat s yValues2. Nyní také vložte následující segment kódu.
With ThisDocument.ChartSpace1 .Průhledná .Obnovit Nastavte oChart = .Charts.Add oChart.HasTitle = True oChart.Title.Caption = "Čísla měsíčního rozpočtu vs průměr"
Tato část kódu vytváří ve skutečnosti vlastní graf “grafový prostor” kontejner. Váš graf v tuto chvíli nemá žádná data, ale pomocí několika příkazů můžete nastavit název grafu a titulek. Nyní je čas přidat data. Vložte následující kód pod kód, který jste již vložili.
Nastavte oSeries1 = oChart.SeriesCollection.Add S oSeries1 .Caption = "Tento měsíc" .SetData chDimCategories, chDataLiteral, xValues .SetData chDimValues, chDataLiteral, yValues1 .Zadejte = chChartTypeColumnClustered Konec s 'Do grafu přidejte další řadu s hodnotami x a y 'z polí a nastavte typ řady na čárový graf Nastavte oSeries = oChart.SeriesCollection.Add S oSeries .Caption = "Průměrné výdaje" .SetData chDimCategories, chDataLiteral, xValues .SetData chDimValues, chDataLiteral, yValues2 .Zadejte = chChartTypeLineMarkers Konec s
Výše uvedený kód vytváří dvě řady k zobrazení v grafu. První řada konfiguruje data tak, aby se zobrazovala uvnitř objektu grafu jako “SloupecClustered” formát a druhá řada je nastavena tak, aby se zobrazovala jako “TypeLineMarkers” formát. Tím se zobrazí obě sady hodnot na stejném grafu, ale použije se různé typy grafů - což může být ve skutečnosti velmi cool způsob, jak zobrazit a porovnat více sad dat.
Nyní, když jsou data přidána, zbývá pouze uklidit osu a dokončit detaily grafu.
'Formátování hodnotových osoChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0" oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000 „Zobrazte legendu ve spodní části grafu oChart.HasLegend = True oChart.Legend.Position = chLegendPositionBottomKonec sEnd Sub
Výše uvedený kód formátuje čísla na levé ose, která se mají zobrazit v číselném formátu dolaru. Další řádek konfiguruje maximální limit vertikální osy. Protože vím, že jednotlivé položky nepřesáhnou 1000 $, nastavil jsem maximální limit osy y.
Uložte dokument, zavřete jej, znovu otevřete a voila - up přijde váš graf, automaticky načten daty z vašich dvou polí.
Nyní, když víte, jak vkládat grafy a do nich automaticky načítat data, jen přemýšlejte o možnostech. Jediné, co musíte udělat, je dostat do těchto polí jakákoli externí data - možná tabulku Excelu, možná databázi Access nebo cokoli jiného - a najednou se tento dokument stane velmi dynamickým a cenným oknem do uložených dat..
Toto je jen špička ledovce s objekty MS Office Web Components. Začal jsem s grafy, protože jsem zjistil, že tato funkce je nejvíce vzrušující. Chcete-li přidat grafy do libovolné aplikace VBA, kterou chcete pomocí velmi krátkého skriptu, je velmi užitečné a velmi výkonné.
Pokud jste všichni o grafech, proč nezkusit tento grafový objekt vyzkoušet? Znáte nějaké další užitečné mapovací objekty pro VBA? Jak vložíte data do svých aplikací? Sdílejte své myšlenky a zkušenosti v sekci komentářů níže.
Obrázek Kredit: Tablet Finance Bar Chart prostřednictvím Shutterstock