Reklama

utwórz wykresCzy nie byłoby miło mieć możliwość otwarcia arkusza kalkulacyjnego Excel lub dokumentu Word bez konieczności robienia czegokolwiek w wszystkie dane są odczytywane bezpośrednio z pliku tekstowego lub pliku CSV i ładowane bezpośrednio do wykresu osadzonego w arkuszu kalkulacyjnym lub programie Word dokument? Jest to forma automatyzacji za pomocą produktów pakietu Office, ponieważ jeśli możliwe jest zautomatyzowanie tworzenia wykresów danych w pakiecie Office, wystarczy pomyśleć o możliwościach. Możesz automatycznie ładować dane do wykresu, aby przygotować raport dla swojego szefa - wprowadzanie danych nie jest wymagane. Lub możesz załadować dane do wykresu bezpośrednio do wiadomości e-mail w programie Outlook.

Technika osiągnięcia tego celu polega na zainstalowaniu dodatku Office Web Components. Co więcej, wystarczy skonfigurować w aplikacji Office kilka rzeczy, których chcesz użyć do zaimportowania danych, i możesz rozpocząć automatyzację pracy związanej z raportowaniem. W poprzednim artykule omówiłem niektóre elementy, których będziemy używać w tym artykule

instagram viewer
Artykuły VBA Jak stworzyć własną prostą aplikację za pomocą VBAChcesz wiedzieć, jak stworzyć własną aplikację VBA do rozwiązywania problemów? Skorzystaj z tych wskazówek, aby zbudować własne oprogramowanie VBA. Czytaj więcej tutaj w MakeUseOf. Kilka z nich obejmowało przekazywanie danych pomiędzy aplikacje ze schowkiem Przekaż dowolne informacje między aplikacjami VBA przy użyciu schowkaJedną z najbardziej frustrujących części pracy z VBA w określonych aplikacjach jest to, że nie zawsze łatwo jest połączyć dwie aplikacje ze sobą. Możesz wypróbować bardzo szybkie transakcje ... Czytaj więcej , eksportowanie Zadania programu Outlook do programu Excel Jak wyeksportować zadania programu Outlook do programu Excel za pomocą VBABez względu na to, czy jesteś fanem Microsoft, przynajmniej jedną dobrą rzeczą, którą można powiedzieć o produktach MS Office, jest to, jak łatwo jest zintegrować każdy z nich ze sobą ... Czytaj więcej i wysyłanie Wiadomości e-mail z programu Excel Jak wysyłać wiadomości e-mail z arkusza kalkulacyjnego Excel za pomocą skryptów VBANasz szablon kodu pomoże Ci skonfigurować automatyczne wiadomości e-mail z poziomu programu Excel za pomocą skryptów Collaboration Data Objects (CDO) i VBA. Czytaj więcej scenariusz.

Pokażę Ci, jak połączyć Office Web Components ze skryptami plików tekstowych, aby utworzyć płynny, zautomatyzowany strumień danych z płaskiego pliku tekstowego na twoim komputerze do twojego produktu Office (w naszym przypadku Przewyższać). Możesz użyć tej samej techniki - z kilkoma małymi modyfikacjami - w Word, Outlook, a nawet PowerPoint. Każdy produkt Office (lub jakikolwiek inny produkt w tym zakresie), który ma zaplecze VBA dla programistów, pozwoli ci korzystać z tej techniki.

Zaimportuj i utwórz wykres z plików danych

Zanim utworzysz wykres z plików danych, musisz najpierw włączyć kilka rzeczy. W tym przykładzie pokażę, jak włączyć te funkcje w programie Excel, ale proces jest prawie identyczny w każdym innym produkcie Office.

Po pierwsze, zanim będziesz mógł opracować VBA, musisz włączyć kartę programisty na pasku narzędzi (jeśli jeszcze tego nie zrobiłeś). Aby to zrobić, po prostu przejdź do menu Opcje, kliknij „Dostosuj wstążkę” i włącz kartę „Deweloper”.

utwórz wykres

Po powrocie do Excle zobaczysz w menu „Deweloper”. Kliknij na niego i kliknij „Tryb projektowania”. Następnie kliknij „Wyświetl kod”, aby wyświetlić edytor VBA.

Jak utworzyć wykres z nieprzetworzonych plików danych w dowolnym produkcie biurowym VBAChart21

Wewnątrz edytora musisz włączyć referencje potrzebne do kodu, który dam ci do pracy. Zanim to zrobisz, upewnij się, że zainstalowałeś dodatek Office Web Components, w przeciwnym razie obiekt Microsoft Chart nie będzie dostępny.

utwórz wykres
Kliknij Narzędzia, a następnie Referencje, a zobaczysz listę wszystkich referencji dostępnych w twoim systemie. Jeśli nie wiesz, co to jest - referencje to w zasadzie biblioteki kodu i obiekty, które możesz pobrać do własnego projektu. Umożliwiają one robienie naprawdę fajnych rzeczy, w zależności od włączonego odniesienia. Jeśli właśnie zainstalowałeś Office Web Components w swoim systemie, musisz dodać go jako nową bibliotekę, więc kliknij przycisk Przeglądaj, aby znaleźć odpowiedni plik .dll.

utwórz wykres

Jeśli masz zainstalowane składniki Office Web Components, plik DLL nosi nazwę OWC11.dll i jest przechowywany w folderze c: \ program files \ common files \ microsoft shared \ web components \ 11 \
utwórz wykres

Kliknij pole wyboru dla odwołania „Microsoft Office Web Components 11.0”, a także nie zapomnij wybierz również „Microsoft Scripting Runtime”, co da ci dostęp do odczytu lub zapisu danych pliki.

Po dodaniu odwołania nadszedł czas, aby dodać rzeczywisty wykres do arkusza. W programie Excel można dodawać formanty, klikając „Wstaw” w menu Deweloper i klikając małą ikonę narzędzi w rogu w „Formanty ActiveX”.

Jak utworzyć wykres z surowych plików danych w dowolnym produkcie biurowym VBAChart6

Przewiń do „Microsoft Office Chart 11.0” i kliknij OK.
utwórz wykres za darmo

W końcu zabieramy się do pracy. Oto jak wygląda mapa MS Web Component w arkuszu kalkulacyjnym. Będzie wyglądać tak samo, osadzone w dokumencie Word lub cokolwiek innego.

utwórz wykres za darmo
Tak więc w przypadku programu Excel chcę, aby wykres natychmiast ładował dane z pliku danych po otwarciu pliku skoroszytu. Aby to zrobić, przejdź do edytora kodu, klikając „Wyświetl kod” w menu Deweloper i dwukrotnie kliknij skoroszyt, aby wyświetlić kod skoroszytu. Zmień prawą listę rozwijaną na „Otwórz”. Jest to skrypt, który zostanie uruchomiony przy pierwszym otwarciu pliku skoroszytu.

utwórz wykres za darmo
Aby załadować wykres danymi z kodu, sam wykres potrzebuje nazwy. Wróć do arkusza kalkulacyjnego, kliknij wykres prawym przyciskiem myszy i wybierz polecenie Właściwości. Zobaczysz pole „Nazwa” z czymś takim jak „ChartSpace1”. Możesz to zmienić na cokolwiek. Nazwałem mój „MyChart”.
Jak utworzyć wykres z nieprzetworzonych plików danych w dowolnym produkcie biurowym VBAChart10
Ponadto, abyś wiedział, jak wygląda plik danych - mój to plik tekstowy wypełniony wartościami danych w formacie rozdzielanym przecinkami. Tym plikiem może być wszystko - dane laboratoryjne eksportowane z czujników, informacje finansowe wpisywane do pliku ręcznie przez stażystów lub cokolwiek innego. Będziesz wczytywał plik za pomocą kodu, więc nie ma znaczenia, jak wyglądają dane, o ile wiesz, jak będzie wyglądać każda linia, gdy program ją wczyta.
utwórz wykres
A teraz część zabawy. Pokażę ci kod w małych sekcjach, aby nie był przytłaczający, i wyjaśnię, co robi kod. Góra kodu najpierw odczyta wszystkie wartości z pliku tekstowego i zapisze je w dwóch tablicachx, jednej dla zmiennych x (xVar) i jednej dla zmiennych y (yVar).

Dim fso As New FileSystemObject. Dim fnum. Dim MyFile As String. Dim strDataLine As String. Dim xVar () As Variant. Dim yVar () As Variant. Dim intNumOfLines As Integer MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Otwórz MyFile dla wejścia jako nr 1. intNumOfLines = 0. Do While Not EOF (1) intNumOfLines = intNumOfLines + 1 Wejście nr 1, strDataLine Wejście nr 1, strDataLine. Pętla. Zamknij # 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Otwórz MyFile dla wejścia jako nr 1. intNumOfLines = 0. Do While Not EOF (1) Wejście nr 1, xVar (intNumOfLines) Wejście nr 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1. Pętla. Zamknij # 1

Ten kod zasadniczo przechodzi przez plik danych dwa razy - po raz pierwszy tak zwymiaruje tablice są one dokładną długością potrzebną do przechowywania danych, a następnie po raz drugi wczytania danych tablice. Jeśli nie wiesz, co to jest tablica - jest to zmienna lub obszar pamięci, który będzie zawierał długą listę wartości, do których można uzyskać dostęp za pomocą kolejności, w jakiej wartość była przechowywana w tablicy. Jedna ładowana trzecia to na przykład (3).

Teraz, gdy masz już dwie z tych tablic ze wszystkimi wartościami z pliku danych, możesz załadować te wartości do wykresu, który już umieściłeś. Oto kod, który to robi.

Z Sheet1.MyChart .Clear .Refresh Set oChart = .Charts. Dodaj oChart. HasTitle = True oChart. Tytuł. Caption = „Moje wartości danych” „oChart. Wnętrze. Kolor = „niebieski” oChart. Działka. Wnętrze. Kolor = „biały” Ustaw oSeries = oChart. SeriesCollection. Dodaj za pomocą oSeries .Caption = "Moje wartości danych" .SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line. Kolor = „niebieski”. Linia. DashStyle = chLineDash .Line. Waga = 2 .Typ = chChartTypeLine Koniec z oChart. HasLegend = True. oChart. Legenda. Position = chLegendPositionBottom. Kończyć z

To „Sheet1.MyChart” łączy kod z rzeczywistym osadzonym wykresem. Opiera się na tym, jak go nazwałeś. Tak będzie w przypadku osadzenia go w programie Word, Powerpoint lub innym produkcie Office. Nie będziesz go odsyłać za pomocą „Arkusza1”, ale zamiast tego w tym przypadku dowolny element zawiera Wykres, na przykład „dokument1” w programie Word.

Powyższy kod następnie konfiguruje etykietowanie i kolorowanie wykresu, a następnie ładuje wartości przy użyciu metody „.setdata” zarówno dla wartości x, jak i dwuwymiarowego zestawu danych. Po uruchomieniu powyższego kodu pojawi się następujący wykres.
utwórz wykres

Te dane są prosto z pliku tekstowego. Jedyną wadą jest to, że pliki danych będą musiały być dwuwymiarowe tylko, jeśli chcesz użyć powyższego kodu. Możesz dodać więcej wartości do zestawu danych, ale musisz zmodyfikować powyższy kod, aby za każdym razem w pętli wczytywać trzecią wartość, a następnie zduplikować „SeriesCollection. Dodaj ”, aby utworzyć kolejną serię, a następnie dodać ją do wykresu w ten sam sposób.

Samo przeczytanie powyższego kodu może wydawać się skomplikowane, ale po wykonaniu jednego z nich modyfikowanie go w zależności od potrzeb jest bardzo proste. Możesz użyć tego samego wykresu i podobnego kodu do utworzenia wykresu słupkowego, wykresu rozrzutu lub dowolnego innego typu wykresu, którego chcesz używać z tym samym obiektem. Jest wszechstronny i elastyczny - i jest potężnym narzędziem w twoim arsenale, jeśli jesteś fanem automatyzacji dla większej wydajności.

Zapoznaj się z powyższym kodem i sprawdź, czy możesz automatycznie ładować dane do swoich aplikacji. Jakie kreatywne zastosowania możesz wymyślić dla tego rodzaju automatyzacji? Podziel się swoimi przemyśleniami i opiniami w sekcji komentarzy poniżej!

Ryan ma tytuł licencjata z inżynierii elektrycznej. Pracował 13 lat w inżynierii automatyki, 5 lat w IT, a teraz jest inżynierem aplikacji. Były redaktor naczelny MakeUseOf, przemawiał na krajowych konferencjach dotyczących wizualizacji danych i był prezentowany w krajowej telewizji i radiu.