Reklame

oprette en grafVille det ikke være rart at have muligheden for bare at åbne et Excel-regneark eller et Word-dokument, og uden at skulle gøre noget ved alt sammen læses data direkte ud af en tekst- eller CSV-datafil og indlæses direkte i et diagram, der er indlejret i dit regneark eller Word dokument? Dette er en form for automatisering ved hjælp af Office-produkter, for hvis det er muligt at automatisere kortlægningen af ​​data i Office, skal du bare tænke på mulighederne. Du kan automatisk indlæse data i et diagram for en rapport, som du sammensætter til din chef - ingen dataindtastning kræves. Eller du kan indlæse data i et diagram direkte i en e-mail i Outlook.

Teknikken til at udføre dette involverer installation af tilføjelsen til Office Web Components. Desuden skal du bare konfigurere et par ting inde i Office-applikationen, som du vil bruge til at importere dataene, og du er klar til at begynde at automatisere dit rapporteringsarbejde. Jeg har dækket nogle af de elementer, som vi vil bruge i denne artikel tidligere

instagram viewer
VBA-artikler Hvordan du kan lave din egen enkle app med VBAVil du vide, hvordan du laver din egen VBA-applikation til at løse problemer? Brug disse tip til at oprette din egen VBA-software. Læs mere her på MakeUseOf. Et par af dem inkluderede videregivelse af data imellem applikationer med udklipsholderen Overfør alle oplysninger mellem VBA-applikationer ved hjælp af udklipsholderenEn af de mest frustrerende dele af at arbejde med VBA inden for specifikke applikationer er, at det ikke altid er nemt at få to applikationer til at ”tale” med hinanden. Du kan prøve meget hurtige transaktioner ... Læs mere , eksport Outlook-opgaver til Excel Sådan eksporteres dine Outlook-opgaver til Excel med VBAUanset om du er fan af Microsoft eller ikke, er en god ting, der i det mindste kan siges om MS Office-produkter, hvor let det er at integrere hver af dem med hinanden ... Læs mere , og afsendelse E-mails fra en Excel Sådan sendes e-mails fra et Excel-regneark ved hjælp af VBA-scriptsVores kodeskabelon hjælper dig med at konfigurere automatiserede e-mails fra Excel ved hjælp af CDO (Collaboration Data Objects) og VBA-scripts. Læs mere manuskript.

Det, jeg vil vise dig, er, hvordan man kombinerer Office Web Components med scripting af tekstfiler for at oprette en sømløs, automatiseret strøm af data fra en flad tekstfil på din computer til dit Office-produkt (i vores tilfælde Excel). Du kan bruge den samme teknik - med et par små ændringer - i Word, Outlook eller endda PowerPoint. Ethvert Office-produkt (eller ethvert andet produkt for den sags skyld), der har en VBA-backend for udviklere, giver dig mulighed for at bruge denne teknik.

Importer og opret en graf fra datafiler

Før du kan oprette en graf fra datafiler, skal du først aktivere et par ting. I dette eksempel vil jeg vise dig, hvordan du aktiverer disse funktioner i Excel, men processen er næsten identisk i alle andre Office-produkter.

Først inden du kan udføre nogen VBA-udvikling, skal du aktivere fanen Developer på værktøjslinjen (hvis du ikke allerede har gjort det). For at gøre dette skal du bare gå ind i menuen Indstillinger, klikke på "Tilpas bånd" og aktivere fanen "Udvikler".

oprette en graf

Tilbage i Excle, vil du nu se "Developer" vises i menuerne. Klik på det og klik på “Design Mode”. Klik derefter på “Vis kode” for at se VBA-editoren.

Sådan opretter du en graf fra rå datafiler i ethvert kontorprodukt VBAChart21

Inde i editoren er det, hvor du bliver nødt til at aktivere de referencer, du har brug for, for den kode, jeg vil give dig, til at arbejde. Sørg for, at du har installeret tilføjelsen Office Web Components, før du gør dette, ellers er Microsoft Chart-objektet ikke tilgængeligt.

oprette graf
Klik på Værktøjer og derefter på Referencer, så ser du en liste over alle de referencer, der er tilgængelige på dit system. Hvis du ikke ved, hvad disse er - referencer er dybest set biblioteker med kode og objekter, som du kan trække ind i dit eget projekt. Disse giver dig mulighed for at gøre nogle virkelig seje ting, afhængigt af hvilken reference du aktiverer. Hvis du lige har installeret Office Web Components i dit system, skal du tilføje det som et nyt bibliotek, så klik på knappen Gennemse for at finde den rigtige .dll-fil.

oprette graf

Hvis du har installeret Office Web Components, kaldes DLL-filen OWC11.dll, og den er gemt i c: \ programfiler \ fælles filer \ microsoft shared \ web component \ 11 \
oprette graf

Klik på afkrydsningsfeltet for referencen "Microsoft Office Web Components 11.0", og glem heller ikke at gøre det vælg ”Microsoft Scripting Runtime” også, som giver dig adgang til at læse eller skrive fra data filer.

Nu, hvor du har tilføjet referencen, er det tid til at tilføje det faktiske diagram til dit ark. I Excel kan du tilføje kontroller ved at klikke på "Indsæt" i menuen Udvikler og klikke på det lille værktøjsikon i hjørnet under "ActiveX-kontroller".

Sådan opretter du en graf fra rå datafiler i ethvert kontorprodukt VBAChart6

Rul til “Microsoft Office Chart 11.0”, og klik på OK.
oprette en graf gratis

Vi er endelig begyndt at komme i gang. Sådan ser MS Web Component-diagrammet ud integreret i et regneark. Det ser ens indlejret i et Word-dokument eller andet.

oprette en graf gratis
Så i tilfælde af Excel vil jeg gerne have, at diagrammet øjeblikkeligt indlæser data fra datafilen, når jeg åbner projektmappen. For at gøre dette går du ind i kodeditoren ved at klikke på “Vis kode” i udvikler-menuen og dobbeltklikke på projektmappen for at se projektmappekoden. Skift det rigtige dropdown til “Open”. Dette er det script, der kører, når projektmappen først åbnes.

oprette en graf gratis
For at indlæse diagrammet med data fra kode, skal selve kortet have et navn. Gå tilbage til regnearket, højreklik på diagrammet og vælg Egenskaber. Du kan se feltet "Navn" med noget som "ChartSpace1". Du kan ændre dette til noget. Jeg har kaldt min "MyChart".
Sådan opretter du en graf fra rå datafiler i ethvert kontorprodukt VBAChart10
Bare så du ved, hvordan datafilen er - min er en tekstfil fyldt med dataværdier i kommaafgrænset format. Denne fil kan være overhovedet - laboratoriedata, der eksporteres fra sensorer, økonomiske oplysninger, der er indtastet manuelt i filen af ​​praktikanter, eller overhovedet andet. Du læser filen ind med din kode, så det betyder ikke noget, hvordan dataene ser ud, så længe du ved, hvordan hver linje ser ud, når dit program læser dem ind.
oprette en graf
Så nu til den sjove del. Jeg vil vise dig koden i små sektioner, så den ikke er overvældende, og forklare, hvad koden gør. Toppen af ​​koden læser først alle værdierne fra tekstfilen og gemmer dem i to matrixer, en for x-variabler (xVar) og en for y-variabler (yVar).

Dim fso Som nyt FileSystemObject. Dim fnum. Dim MyFile som streng. Dim strDataLine Som streng. Dim xVar () Som variant. Dim yVar () Som variant. Dim intNumOfLines Som heltal MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Åbn MyFile til input som nr. 1. intNumOfLines = 0. Do While Not EOF (1) intNumOfLines = intNumOfLines + 1 input # 1, strDataLine Input # 1, strDataLine. Loop. Luk # 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Åbn MyFile til input som nr. 1. intNumOfLines = 0. Gør, mens ikke EOF (1) input nr. 1, xVar (intNumOfLines) input # 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1. Loop. Luk nr. 1

Denne kode kører grundlæggende gennem datafilen to gange - første gang at dimensionere matrixerne, så de er den nøjagtige længde, der er nødvendig for at gemme dataene, og derefter en anden gang for at læse dataene i dem arrays. Hvis du ikke ved, hvad en matrix er - er det en variabel eller et lagerområde, der vil indeholde en lang liste over værdier, som du kan få adgang til ved hjælp af den rækkefølge, som værdien blev gemt i array. Den ene indlæste tredjedel ville f.eks. Være (3).

Nu hvor du har to af disse arrays indlæst med alle værdierne fra din datafil, er du klar til at indlæse disse værdier i diagrammet, som du allerede har integreret. Her er koden, der gør det.

Med Sheet1.MyChart .Clear .Refresh Set oChart = .Charts. Tilføj oChart. HasTitle = Sandt oChart. Titel. Billedtekst = "Mine dataværdier" oChart. Indre. Farve = "blå" oChart. PlotArea. Indre. Farve = "hvid" Sæt oSeries = oChart. SeriesCollection. Tilføj med oSeries .Caption = "Mine dataværdier". SetData chDimCategorier, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line. Farve = "blå". Linie. DashStyle = chLineDash .Line. Vægt = 2. Type = chChartTypeLine-slutning med oChart. HasLegend = Sandt. oChart. Legende. Position = chLegendPositionBottom. Slut med

Det er "Ark1.MyChart", der forbinder koden til det faktiske diagram, du har integreret. Det er baseret på, hvad du navngav det. Dette vil være tilfældet, når du integrerer det i Word, Powerpoint eller ethvert andet Office-produkt. Du henviser ikke til det ved hjælp af "Ark1", men i stedet for det element, der indeholder kortet i dette tilfælde, f.eks. "Dokument1" i Word for eksempel.

Koden ovenfor opsætter derefter mærkningen og farvelægningen af ​​grafen og indlæses derefter værdierne ved hjælp af ".setdata" -metoden til både x- og y-værdier i det to-dimensionelle datasæt. Når koden ovenfor er færdig med at køre, vises følgende graf.
oprette en graf

Disse data er lige ud af tekstfilen. Den eneste ulempe her er, at datafilerne kun behøver at være to-dimensionelle, hvis du vil bruge koden ovenfor. Du kan tilføje flere værdier til datasættet, men du bliver nødt til at ændre koden ovenfor for at læse den tredje værdi hver gang gennem løkken og derefter duplikere “SeriesCollection. Afsnit "Tilføj" for at oprette en anden serie og derefter tilføje den til diagrammet på samme måde.

Det kan virke kompliceret bare ved at læse koden ovenfor, men når du først har lavet en af ​​disse, er det et stykke kage at ændre den til, hvad dine behov er. Du kan bruge det samme diagram og lignende kode til at oprette et søjlediagram, et scatter-diagram eller en hvilken som helst anden korttype, du vil bruge dette samme objekt. Det er alsidigt og fleksibelt - og det er et kraftfuldt værktøj i dit arsenal, hvis du er en fan af automatisering for større produktivitet.

Leg rundt med koden ovenfor, og se, om du automatisk kan indlæse data i dine applikationer. Hvilke kreative anvendelser kan du tænke på for denne type automatisering? Del dine tanker og feedback i kommentarfeltet nedenfor!

Ryan har en BSc-grad i elektroteknik. Han har arbejdet 13 år inden for automatisering, 5 år inden for it, og er nu en applikationsingeniør. En tidligere administrerende redaktør for MakeUseOf, han har talt på nationale konferencer om datavisualisering og har været vist på nationalt tv og radio.