Legg til et diagram til et Microsoft-dokument med Office Web Components

Legg til et diagram til et Microsoft-dokument med Office Web Components / Windows

Er det ikke utrolig hvordan noe så enkelt som å lage et diagram kan føle seg så komplisert noen ganger? Enten du bruker Excel, Word, Powerpoint eller Access - noen ganger vil det være fint å bare sette inn et raskt diagram med en haug med data uten å måtte gjøre mye å konfigurere og rote om.

I denne artikkelen skal jeg vise deg hvordan du bruker et veldig praktisk og enkelt VBA-objekt fra Microsoft Office Web Components som lar deg sette inn et diagram direkte i et dokument, presentasjon eller noe annet der du kan opprette VBA-kode for å kjøre den. Dette kan også inkludere ikke-Microsoft-produkter som har en VBA-back-end, som mange gjør.

I dette eksemplet skal jeg vise deg hvordan du aktiverer designmodus i programmet ditt (i dette tilfellet bruker vi Microsoft Word), legg inn diagramobjektet i prosjektet ditt og deretter hvordan du skriver koden som fyller den inn med data.

I noen av mine tidligere VBA-artikler nevnte noen av dere at oppgaven ved hånden var litt for komplisert for alle som aldri har skrevet kode før. Jeg håper at etter å ha lest denne artikkelen, vil du være motivert for å prøve deg med VBA. Koden som følger med her, er veldig enkel og enkel å skrive. Inkludering av dette diagrammet er en fin måte å få hendene skitne med VBA hvis du aldri har prøvd det før.

Hvis du kjenner VBA, er dette et flott verktøy for å begynne å legge inn raske diagrammer i prosjektene dine med mye mindre innsats enn noen gang før.

Aktiverer designmodus

I dette eksemplet ønsket jeg å sette sammen et raskt dokument med et innebygd diagram som viser data fra den nåværende måneden av budsjettet min samt det månedlige gjennomsnittet av utgifter år til dato.

I dette eksemplet skal jeg plassere disse verdiene hardkodet i en “matrise” rett inn i VBA-koden, men i siste instans kan du bruke en rekke teknikker for å laste disse arrayvariablene (en tabell er bare en variabel som inneholder en liste over verdier) fra andre kilder, som et eksternt regneark eller til og med et skjema hvor du skriver inn Verdiene i manuelt hver måned.

For å lære å importere data til Word fra Excel, sjekk ut artikkelen Slik integrerer du Excel-data i et Word-dokument. Slik integrerer du Excel-data i et Word-dokument I arbeidsdagen din er det sannsynligvis mange ganger at du finner deg selv å kopiere og lime inn informasjon fra Excel til Word, eller omvendt. Slik produserer folk ofte skrevne rapporter ... Les mer om emnet. I denne artikkelen skal vi fokusere på å lage diagrammet for å vise data.

Nå som jeg har startet dokumentet mitt, vil jeg komme inn i koden. I Word eller Excel gjør du dette ved å klikke på “Fil”, “alternativer” og klikk deretter på alternativet for å tilpasse båndet. På høyre side av alternativer ser du “Tilpass båndet” kolonne, og i “Hovedfaner” felt du bør se “Utvikler” ukontrollert. Sjekk boksen.

Tilbake på dokumentet, bør du nå se “Utvikler” menyelement tilgjengelig. Innenfor denne menyen finner du “Designmodus” knapp.

Klikk på Design Mode, og klikk deretter på den mappen / verktøyikonet for “Legacy Tools”, og deretter i nedre høyre hjørne av popup-boksen, under ActiveX Controls, klikker du på “Flere kontroller” knapp.

Rull ned listen over tilgjengelige kontroller til du kommer til “Microsoft Office Chart xx.x”. Hvis du har Microsoft Office installert på datamaskinen din, vil denne kontrollen sannsynligvis være tilgjengelig.

Når du har satt inn kontrollen i dokumentet ditt, ser du det vises som en boks som sier “Microsoft Office Web Components” innsiden. Dette er i hovedsak ditt tomme diagram, klar til å vise dataene dine.

Det neste trinnet er å skrive opp koden som vil sette opp diagramtypen din, og vise dataene. Hvis du vil at prosessen skal være manuell, kan du plassere en knapp på dokumentet som vil laste dataene inn i diagrammet, men i mitt tilfelle ville jeg at hele greia skal være fullstendig automatisert. I det øyeblikket jeg åpner dokumentet, ønsket jeg at det skulle kjøre skriptet som laster kartet, slik at du kan gjøre dette i koden (klikk på Visual Basic-knappen for å komme inn i kodeditoren), og velg dokumentobjektet og “Åpen” begivenhet.

Dette plasserer automatisk en tom funksjon som kalles “Document_Open ()” inn i koden din. Innenfor den funksjonen vil du lime inn følgende kode.

Privat Sub Document_Open ()  Dim jeg som helhet  Dim oChart  Dim oSeries1  Dim oSeries2  'Lag arrays for x-verdiene og y-verdiene  Dim xValues ​​Som variant, yValues1 Som variant, yValues2 Som variant  xValues ​​= Array ("Electric Bill", "Mortgage", "Phone Bill", _  "Oppvarmingsregning", "Dagligvarer", _  "Bensin", "Klær", "Shopping")  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)
 

Denne delen av koden oppretter tre arrays. Den første (xValues) er i utgangspunktet din x-akse liste over beskrivelser for hvert dataelement. I mitt tilfelle lager jeg en kolonnediagram med yValues1, men du kan også lage en linjediagram. Jeg skal vise deg hvordan du gjør det med yValues2. Lim inn også følgende segment av kode.

 Med ThisDocument.ChartSpace1  .Klar  .Forfriske  Angi oChart = .Charts.Add  oChart.HasTitle = True  oChart.Title.Caption = "Månedlig Budsjett Tall vs Gjennomsnitt"
 

Denne delen av kode skaper faktisk skaper diagrammet selv i din “chartspace” container. Kartet ditt har ingen data på dette tidspunktet, men med et par kommandoer kan du angi tittelen for diagrammet samt bildeteksten. Nå er det på tide å legge til dataene. Lim inn følgende kode under koden du allerede har latt inn for å gjøre det.

Angi oSeries1 = oChart.SeriesCollection.Add  Med oSeries1  .Caption = "Denne måneden"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues1  .Type = chChartTypeColumnClustered  Slutt med  'Legg til en annen serie i diagrammet med x-verdiene og y-verdiene  'fra arrays og sett serie type til et linjediagram  Angi oSeries = oChart.SeriesCollection.Add  Med oSeries  .Caption = "Gjennomsnittlig utgifter"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues2  .Type = chChartTypeLineMarkers  Slutt med

Koden ovenfor lager to serier som skal vises i diagrammet. Den første serien konfigurerer dataene som skal vises inne i diagramobjektet som en “ColumnClustered” format, og den andre serien er satt opp for å vises som en “TypeLineMarkers” format. Dette vil vise begge sett med verdier på samme diagram, men det vil bruke forskjellige karttyper - som faktisk kan være en veldig kul måte å vise og sammenligne flere sett med data på.

Nå som dataene er lagt til, er alt som er igjen å rydde opp aksen og ferdig med kartdetaljer.

 'Formater verdisaksene
 oChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0"  oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000  'Vis legenden nederst i diagrammet  oChart.HasLegend = True  oChart.Legend.Position = chLegendPositionBottom
 Slutt med
Slutt Sub

Koden ovenfor formater tallene på venstre akse som skal vises i numerisk dollarformat. Neste linje konfigurerer maksimumsgrensen for den vertikale aksen. Siden jeg vet at enkelte elementer ikke går over $ 1000, er det det jeg satte maksimalt y-akse grensen til.

Lagre dokumentet, lukk det ut, åpne det igjen, og voila-up kommer diagrammet ditt, automatisk lastet med dataene fra de to arrayene dine.

Nå som du vet hvordan du setter inn diagrammer og automatisk laster inn data i dem, tenk bare på mulighetene. Alt du trenger å gjøre er å få noen eksterne data i disse arrays - kanskje et Excel-regneark, kanskje en Access-database, eller noe annet - og plutselig blir dette dokumentet et veldig dynamisk og verdifullt vindu i lagrede data.

Dette er bare toppen av iceburg med objektene MS Office Web Components. Jeg startet med diagrammer fordi jeg finner den funksjonen som den mest spennende. Å legge til diagrammer til en hvilken som helst VBA-applikasjon du vil ha med et veldig kort skript, er veldig nyttig og veldig kraftig.

Hvis du er alt om diagrammer, hvorfor ikke gi dette diagramobjektet et forsøk? Kjenner du til andre nyttige kartleggingsobjekter for VBA? Hvordan legger du inn data i appene dine? Del dine tanker og erfaringer i kommentarfeltet nedenfor.

Image Credit: Tablet Finance Bar Diagram via Shutterstock

Utforsk mer om: Microsoft Excel, Microsoft PowerPoint, Microsoft Word, Visual Basic Programmering.