Føj et diagram til et Microsoft-dokument med Office-webkomponenter

  • Owen Little
  • 0
  • 3807
  • 723
Reklame

Er det ikke forbløffende, hvordan noget så enkelt som at oprette et diagram nogle gange kan føles så kompliceret? Uanset om du bruger Excel, Word, Powerpoint eller Access - sommetider ville det være dejligt at blot indsætte et hurtigt diagram med et stykke data uden at skulle gøre en hel masse konfiguration og messing om.

I denne artikel vil jeg vise dig, hvordan du bruger et virkelig praktisk og simpelt VBA-objekt fra Microsoft Office Web Components, der giver dig mulighed for at indsætte et diagram direkte i et dokument, en præsentation eller noget andet, hvor du kan oprette VBA-kode for at køre det. Dette kan også omfatte ikke-Microsoft-produkter, der har en VBA-back-end, hvilket mange gør.

I dette eksempel viser jeg dig, hvordan du aktiverer designtilstand i dit program (i dette tilfælde bruger vi Microsoft Word), integrerer diagramobjektet i dit projekt og derefter hvordan du skriver koden, der udfylder det ind med data.

I nogle af mine tidligere VBA-artikler nævnte nogle få af jer, at opgaven var lidt for kompliceret for nogen, der aldrig har skrevet kode før. Jeg håber, at du efter at have læst denne artikel bliver motiveret til at prøve dig med VBA. Koden, der er inkluderet her, er meget ligetil og enkel at skrive. Indlejring af dette diagram er en fantastisk måde at få dine hænder beskidte med VBA, hvis du aldrig har prøvet det før.

Hvis du kender VBA, så er dette et godt værktøj til at begynde at indlejre hurtige diagrammer i dine projekter med meget mindre kræfter end nogensinde før.

Aktiverer designtilstand

I dette eksempel ønskede jeg at sammensætte et hurtigt dokument med et indlejret diagram, der viser data fra den aktuelle måned i mit budget såvel som det månedlige gennemsnit for det år, hvor vi har brugt.

I dette eksempel vil jeg placere disse værdier hårdkodet i en “matrix” lige inde i VBA-koden, men i sidste ende kan du bruge en række teknikker til at indlæse disse matrixvariabler (en matrix er simpelthen en variabel, der indeholder en liste over værdier) fra andre kilder, f.eks. et eksternt regneark eller endda en form, hvor du indtaster værdierne manuelt hver måned.

For at lære, hvordan du importerer data til Word fra Excel, skal du se min artikel Sådan integreres Excel-data i et Word-dokument Sådan integreres Excel-data i et Word-dokument I løbet af din arbejdsuge er der sandsynligvis mange gange, at du selv kopierer og indsætte oplysninger fra Excel i Word eller omvendt. Sådan producerer folk ofte rapporter ... om emnet. Med henblik på denne artikel fokuserer vi på at oprette skemaet til visning af data.

Nu hvor jeg har startet mit dokument, vil jeg komme ind på koden. I Word eller Excel gør du dette ved at klikke på “Fil”, “Muligheder” og klik derefter på muligheden for at tilpasse båndet. På højre side af indstillingerne ser du “Tilpas båndet” kolonne og i “Hovedfaner” felt du skal se “Udvikler” ukontrolleret. Marker afkrydsningsfeltet.

Tilbage på dit dokument skal du nu se “Udvikler” menupunkt tilgængeligt. I denne menu finder du “Designtilstand” knap.

Klik på Designtilstand, og klik derefter på det mappe / værktøjsikon for “Ældre værktøjer”, og klik derefter på knappen i nederste højre hjørne af popup-boksen under ActiveX-kontroller “Flere kontrol” knap.

Rul ned på listen over tilgængelige kontroller, indtil du kommer til “Microsoft Office-diagram xx.x”. Hvis du har Microsoft Office installeret på din computer, vil denne kontrol sandsynligvis være tilgængelig.

Når du indsætter kontrollen i dit dokument, vil du se den vises som en boks der siger “Microsoft Office-webkomponenter” inde. Dette er i det væsentlige dit tomme diagram, klar til at vise dine data.

Det næste trin er at skrive den kode, der indstiller din diagramtype, og vise dataene. Hvis du ønsker, at processen skal være manuel, kan du placere en knap på dokumentet, der vil indlæse dataene i diagrammet, men i mit tilfælde ville jeg, at det hele skulle være komplet automatiseret. I det øjeblik jeg åbnede dokumentet, ønskede jeg, at det skulle køre det script, der indlæser diagrammet, så du kan gøre dette i koden (klik på knappen Visual Basic for at komme ind i kodeditoren) og vælge dokumentobjektet og “Åben” begivenhed.

Dette placerer automatisk en tom funktion, der kaldes “Document_Open ()” ind i din kode. Inde i denne funktion ønsker du at indsætte følgende kode.

Privat underdokument_Åbn ()  Dim i som heltal  Dim oChart  Dim oSeries1  Dim oSeries2  'Opret matriser til x-værdierne og y-værdierne  Dim xValues ​​Som Variant, yValues1 Som Variant, yValues2 Som Variant  xValues ​​= Array ("Electric Bill", "Mortgage", "Phone Bill", _  "Varmeregning", "Dagligvarer", _  "Benzin", "Tøj", "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)
 

Dette afsnit af kode opretter tre arrays. Den første (xValues) er dybest set din x-akseliste med beskrivelser for hvert dataelement. I mit tilfælde opretter jeg en kolonnelinjegraf med yValues1, men du kan også oprette en linjegraf. Jeg viser dig, hvordan du gør det med yValues2. Indsæt nu også følgende kodesegment.

 Med ThisDocument.ChartSpace1  .Klar  .Opdater  Indstil oChart = .Charts.Tilføj  oChart.HasTitle = Sandt  oChart.Title.Caption = "Månedlige budgetnumre kontra gennemsnit"
 

Dette afsnit af kode opretter faktisk skemaet selv i dit “chartspace” beholder. Dit diagram har ikke nogen data på dette tidspunkt, men med et par kommandoer kan du indstille titlen på kortet såvel som billedtekst. Nu er det tid til at tilføje dataene. Indsæt følgende kode under koden, du allerede har indsat for at gøre det.

Indstil oSeries1 = oChart.SeriesCollection.Tilføj  Med oSeries1  .Billedtekst = "Denne måned"  .SetData chDimKategorier, chDataLitteral, xValues  .SetData chDimValues, chDataLiteral, yValues1  .Type = chChartTypeColumnClustered  Slut med  'Føj en anden serie til diagrammet med x-værdier og y-værdier  'fra matriserne og indstil serietypen til et linjediagram  Indstil oSeries = oChart.SeriesCollection.Tilføj  Med oSeries  .Billedtekst = "Gennemsnitlig forbrug"  .SetData chDimKategorier, chDataLitteral, xValues  .SetData chDimValues, chDataLiteral, yValues2  .Type = chChartTypeLineMarkers  Slut med

Koden ovenfor opretter to serier, der skal vises i dit diagram. Den første serie konfigurerer dataene til at blive vist i diagramobjektet som en “ColumnClustered” format, og den anden serie er indstillet til at vises som en “TypeLineMarkers” format. Dette viser begge sæt værdier på det samme diagram, men det bruger forskellige diagramtyper - hvilket faktisk kan være en meget cool måde at vise og sammenligne flere datasæt.

Nu når dataene er tilføjet, er det eneste, der er tilbage, at rydde op i aksen og afslutte kortoplysningerne.

 'Formater værdiakse
 oChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0"  oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000  'Vis sagnet i bunden af ​​diagrammet  oChart.HasLegend = Sandt  oChart.Legend.Position = chLegendPositionBottom
 Slut med
Afslut under

Koden ovenfor formaterer numrene på venstre akse, så de vises i numerisk dollarformat. Den næste linje konfigurerer den maksimale grænse for den lodrette akse. Da jeg ved, at individuelle genstande ikke vil overstige $ 1000, er det, hvad jeg satte den maksimale y-aksegrænse til.

Gem dokumentet, luk det, åbn igen, og voila - up kommer dit diagram, automatisk indlæst med dataene fra dine to arrays.

Nu hvor du ved, hvordan du indsætter diagrammerne og automatisk indlæser data i dem, skal du bare tænke på mulighederne. Alt hvad du skal gøre er at få eksterne data til disse arrays - måske et Excel-regneark, måske en Access-database eller noget andet - og pludselig bliver dette dokument et meget dynamisk og værdifuldt vindue i de lagrede data.

Dette er blot toppen af ​​isbjerget med MS Office Web Components-objekter. Jeg startede med diagrammerne, fordi jeg synes, denne funktion er den mest spændende. At tilføje diagrammer til ethvert VBA-program, du ønsker, med et meget kort script er meget nyttigt og meget kraftfuldt.

Hvis du alt sammen handler om diagrammer, hvorfor ikke prøve dette diagramobjekt? Kender du til andre nyttige kortlægningsobjekter til VBA? Hvordan integrerer du data i dine apps? Del dine tanker og oplevelser i kommentarfeltet nedenfor.

Billedkredit: Tablet Finance-søjlediagram via Shutterstock




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.