
Edmund Richardson
0
4930
1290
Czy to nie zadziwiające, jak coś tak prostego jak tworzenie wykresu może czasami wydawać się tak skomplikowane? Niezależnie od tego, czy korzystasz z Excela, Worda, Powerpointa czy Accessa - czasem fajnie byłoby po prostu wstawić szybki wykres z dużą ilością danych bez konieczności wykonywania całej konfiguracji i bałaganu.
W tym artykule pokażę, jak używać naprawdę wygodnego i prostego obiektu VBA z Microsoft Office Web Components, który pozwala wstawiać wykres bezpośrednio do dokumentu, prezentacji lub czegokolwiek innego, gdzie można utworzyć kod VBA, aby go uruchomić. Może to również obejmować produkty firm innych niż Microsoft, które mają zaplecze VBA, co wielu z nich robi.
W tym przykładzie pokażę, jak włączyć tryb projektowania w twoim programie (w tym przypadku użyjemy Microsoft Word), osadzić obiekt wykresu w projekcie, a następnie, jak napisać kod, który go wypełnia w danych.
W niektórych moich wcześniejszych artykułach na temat VBA kilku z was wspomniało, że zadanie to było trochę zbyt skomplikowane dla każdego, kto nigdy wcześniej nie pisał kodu. Mam nadzieję, że po przeczytaniu tego artykułu będziesz zmotywowany do spróbowania swoich sił w VBA. Zawarty tutaj kod jest bardzo prosty i łatwy do napisania. Osadzenie tej tabeli to świetny sposób na zabrudzenie rąk VBA, jeśli nigdy wcześniej jej nie próbowałeś.
Jeśli znasz VBA, jest to świetne narzędzie, aby rozpocząć osadzanie szybkich wykresów w swoich projektach przy znacznie mniejszym wysiłku niż kiedykolwiek wcześniej.
Włączanie trybu projektowania
W tym przykładzie chciałem przygotować szybki dokument z osadzonym wykresem, który wyświetla dane z bieżącego miesiąca mojego budżetu, a także średnią miesięczną wydatków z roku na rok.
W tym przykładzie zamierzam umieścić te wartości na stałe w “szyk” bezpośrednio w kodzie VBA, ale ostatecznie możesz użyć różnych technik, aby załadować te zmienne tablicowe (tablica jest po prostu zmienną zawierającą listę wartości) z innych źródeł, takich jak zewnętrzny arkusz kalkulacyjny, a nawet formularz, w którym wpisujesz wartości są wprowadzane ręcznie co miesiąc.
Aby dowiedzieć się, jak zaimportować dane do programu Word z programu Excel, zapoznaj się z moim artykułem Jak zintegrować dane programu Excel z dokumentem programu Word Jak zintegrować dane programu Excel z dokumentem programu Word Podczas tygodnia pracy prawdopodobnie wiele razy kopiujesz i wklejanie informacji z Excela do Worda lub na odwrót. W ten sposób ludzie często tworzą pisemne raporty… na ten temat. Na potrzeby tego artykułu skupimy się na tworzeniu wykresu do wyświetlania danych.
Teraz, gdy rozpocząłem swój dokument, chcę wejść do kodu. W Word lub Excel robisz to, klikając “Plik”, “Opcje” a następnie kliknij opcję Dostosuj wstążkę. Po prawej stronie opcji zobaczysz “Dostosuj wstążkę” kolumna oraz w “Główne zakładki” pole, które powinieneś zobaczyć “Deweloper” niepowstrzymany. Zaznacz to pole.
Po powrocie do dokumentu powinieneś teraz zobaczyć “Deweloper” dostępny element menu. W tym menu znajdziesz “Tryb projektowania” przycisk.
Kliknij Tryb projektowania, a następnie kliknij ikonę folderu / narzędzi dla “Starsze narzędzia”, a następnie w prawym dolnym rogu okna podręcznego, w obszarze Kontrolki ActiveX, kliknij “Więcej kontroli” przycisk.
Przewiń listę dostępnych elementów sterujących, aż dojdziesz do “Microsoft Office Chart xx.x”. Jeśli na komputerze jest zainstalowany pakiet Microsoft Office, ta kontrola najprawdopodobniej będzie dostępna.
Po wstawieniu formantu do dokumentu zobaczysz go jako pole z napisem “Microsoft Office Web Components” wewnątrz. Zasadniczo jest to pusty wykres gotowy do wyświetlania danych.
Następnym krokiem jest napisanie kodu, który ustawi typ wykresu i wyświetlenie danych. Jeśli chcesz, aby proces był ręczny, możesz umieścić przycisk w dokumencie, który załaduje dane do wykresu, ale w moim przypadku chciałem, aby cała ta sprawa była całkowicie zautomatyzowana. W momencie, gdy otwieram dokument, chciałem, aby uruchomił skrypt ładujący wykres, abyś mógł to zrobić w kodzie (kliknij przycisk Visual Basic, aby przejść do edytora kodu) i wybrać Obiekt dokumentu oraz “otwarty” zdarzenie.
Spowoduje to automatyczne umieszczenie pustej funkcji o nazwie “Document_Open ()” do twojego kodu. Wewnątrz tej funkcji chcesz wkleić następujący kod.
Prywatny dokument podrzędny_ otwarty () Dim i As Integer Dim oChart Dim oSeries 1 Dim oSeries2 „Utwórz tablice dla wartości x i wartości y Dim xValues As Variant, yValues1 As Variant, yValues2 As Variant xValues = Array („Electric Bill”, „Mortgage”, „Phone Bill”, _ „Rachunek za ogrzewanie”, „Artykuły spożywcze”, _ „Benzyna”, „Ubrania”, „Zakupy”) yWartości 1 = Tablica (124,53, 1250,24, 45,43, 253,54, 143,32, 259,85, 102,5, _ 569,94) yWartości2 = Tablica (110, 1250, 50, 200, 130, 274, 95, _ 300)
Ta sekcja kodu tworzy trzy tablice. Pierwszy (xValues) to w zasadzie lista opisów osi x dla każdego elementu danych. W moim przypadku tworzę wykres słupkowy z yValues1, ale możesz także utworzyć wykres liniowy. Pokażę ci, jak to zrobić za pomocą yValues2. Teraz wklej również następujący segment kodu.
Dzięki ThisDocument.ChartSpace1 .Jasny .Odświeżać Ustaw oChart = .Charts.Add oChart.HasTitle = Prawda oChart.Title.Caption = "Liczby miesięcznego budżetu vs. średnia"
Ta sekcja kodu tworzy tak naprawdę sam wykres w twoim “obszar wykresu” pojemnik. W tym momencie wykres nie zawiera żadnych danych, ale za pomocą kilku poleceń możesz ustawić tytuł wykresu, a także podpis. Czas dodać dane. Wklej następujący kod poniżej kodu, który już wkleiłeś, aby to zrobić.
Ustaw oSeries1 = oChart.SeriesCollection.Add Z oSeries1 .Podpis = „W tym miesiącu” .SetData chDimCategories, chDataLiteral, xValues .SetData chDimValues, chDataLiteral, yValues1 .Wpisz = chChartTypeColumnClustered Kończyć z „Dodaj kolejną serię do wykresu z wartościami xi wartościami y 'z tablic i ustaw typ serii na wykres liniowy Ustaw oSeries = oChart.SeriesCollection.Add Z oSeries .Podpis = „Średnie wydatki” .SetData chDimCategories, chDataLiteral, xValues .SetData chDimValues, chDataLiteral, yValues2 .Wpisz = chChartTypeLineMarkers Kończyć z
Powyższy kod tworzy dwie serie do wyświetlenia na wykresie. Pierwsza seria konfiguruje dane do wyświetlania w obiekcie wykresu jako “ColumnClustered” format, a druga seria jest skonfigurowana do wyświetlania jako “TypeLineMarkers” format. Spowoduje to wyświetlenie obu zestawów wartości na tym samym wykresie, ale użyje różnych typów wykresów - co może być naprawdę świetnym sposobem wyświetlania i porównywania wielu zestawów danych.
Po dodaniu danych wystarczy uporządkować oś i dokończyć szczegóły wykresu.
„Sformatuj osie wartościoChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0" oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000 „Pokaż legendę na dole tabeli oChart.HasLegend = True oChart.Legend.Position = chLegendPositionBottomKończyć zNapis końcowy
Powyższy kod formatuje liczby na lewej osi, aby wyświetlały się w liczbowym formacie dolara. Następny wiersz konfiguruje maksymalny limit osi pionowej. Ponieważ wiem, że poszczególne przedmioty nie przekroczą 1000 USD, właśnie to ustawiłem maksymalny limit osi Y..
Zapisz dokument, zamknij go, otwórz ponownie i voila - pojawia się wykres, automatycznie ładowany danymi z dwóch tablic.
Teraz, gdy wiesz, jak wstawiać wykresy i automatycznie ładować do nich dane, zastanów się nad możliwościami. Wszystko, co musisz zrobić, to przenieść dowolne dane zewnętrzne do tych tablic - może arkusz kalkulacyjny Excel, może baza danych Access lub cokolwiek innego - i nagle ten dokument staje się bardzo dynamicznym i cennym oknem na przechowywane dane.
To tylko wierzchołek iceburg z obiektami MS Office Web Components. Zacząłem od wykresów, ponieważ ta funkcja jest dla mnie najbardziej ekscytująca. Dodawanie wykresów do dowolnej aplikacji VBA za pomocą bardzo krótkiego skryptu jest bardzo przydatne i bardzo wydajne.
Jeśli zależy Ci na wykresach, spróbuj tego obiektu wykresu. Czy znasz jakieś inne przydatne obiekty wykresów dla VBA? Jak osadzasz dane w swoich aplikacjach? Podziel się swoimi przemyśleniami i doświadczeniami w sekcji komentarzy poniżej.
Źródło zdjęcia: Wykres słupkowy finansów tabletu za pośrednictwem Shutterstock