Det er blevet sagt, at op til 50 procent af PowerPoint-præsentationer indeholder data, der er kopieret direkte ud af Excel. Denne udtalelse er ikke svær at tro på. Det er ofte meget nemmere at analysere og oprette diagrammer og datavisninger i Excel end i PowerPoint. Når disse diagrammer og datavisninger er blevet oprettet, hvorfor ville du så ikke bare flytte dem til PowerPoint? Makroen i dette afsnit giver dig mulighed for dynamisk at oprette PowerPoint-slides, der indeholder data fra et område, du angiver.
Du kan downloade et fungerende eksempel på at sende Excel-data til PowerPoint .
Sådan fungerer makroen
I dette eksempel kopierer du et område fra en Excel-fil og indsætter dette område til et dias i en nyoprettet PowerPoint-præsentation.
Husk, at fordi denne kode køres fra Excel, skal du angive en reference til Microsoft PowerPoint Object Library. Du kan indstille referencen ved at åbne Visual Basic Editor i Excel og vælge Værktøj → Referencer. Rul ned, indtil du finder indgangen Microsoft PowerPoint xx Objektbibliotek, hvor xx er din version af PowerPoint. Sæt et flueben i afkrydsningsfeltet ved siden af posten.
Sub CopyRangeToPresentation ()
Trin 1: Erklær dine variabler
Dim PP Som PowerPoint.Application
Dim PPPres Som PowerPoint. Præsentation
Dim PPSlide Som PowerPoint.Slide
Dim SlideTitle Som streng
Trin 2: Åbn PowerPoint og opret en ny præsentation
Indstil PP = New PowerPoint.Application
Indstil PPPres = PP.Presentations.Add
PP.Synlig = Sand
Trin 3: Tilføj nyt dias som dias 1, og sæt fokus på det
Indstil PPSlide = PPPres.Slides.Add(1, ppLayoutTitleOnly)
PPSlide.Select
Trin 4: Kopier området som et billede
Sheets("Diasdata").Range("A1:J28").CopyPicture _
Udseende:=xlSkærm, Format:=xlBillede
Trin 5: Indsæt billedet og juster dets position
PPSlide.Shapes.Paste.Select
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
Trin 6: Tilføj titlen til diaset
SlideTitle = "Mit første PowerPoint-dias"
PPSlide.Shapes.Title.TextFrame.TextRange.Text = SlideTitle
Trin 7: Hukommelsesoprydning
PP. Aktiver
Indstil PPSlide = Ingenting
Indstil PPPres = Intet
Indstil PP = Ingenting
Afslut sub
I trin 1 erklærer du fire variabler: PP er en objektvariabel, der eksponerer PowerPoint Application-objektet, PPPres er en objektvariabel, der eksponerer PowerPoint Presentation-objektet, PPSlide er en objektvariabel, der eksponerer PowerPoint Slide-objektet, og SlideTitle er en streng variabel, der bruges til at sende teksten til diastitlen.
Trin 2 åbner PowerPoint med en tom præsentation. Bemærk, at du indstiller egenskaben Visible for PowerPoint-applikationen til True for at sikre, at du kan se handlingen, mens koden kører.
I trin 3 tilføjer du et nyt dias til præsentationen ved hjælp af Tilføj metoden til diasobjekt. Bemærk, at du bruger ppLayoutTitleOnly, og sikrer, at diaset er oprettet med en titeltekstramme. Du tager så et ekstra skridt og sætter fokus på rutsjebanen. Det vil sige, du beder PowerPoint eksplicit om at vælge dette dias, hvilket gør det aktivt.
I trin 4 bruger du CopyPicture-metoden til at kopiere målområdet som et billede. Området, der kopieres her, er område A1 til J28 på fanen Slide Data.
Trin 5 indsætter billedet i det aktive dias og centrerer billedet både vandret og lodret.
I trin 6 gemmer du teksten til titlen i en strengvariabel og sender derefter denne variabel til PowerPoint for at anvende tekst på titeltekstrammen.
I trin 7 frigiver du de objekter, der er tildelt dine variabler, hvilket reducerer chancen for problemer forårsaget af rouge-objekter, der kan forblive åbne i hukommelsen.
Sådan bruger du makroen
For at implementere denne makro kan du kopiere og indsætte den i et standardmodul:
Aktiver Visual Basic Editor ved at trykke på Alt+F11.
Find dit projekt-/projektmappenavn i projektvinduet.
Vælg Indsæt → Modul.
Indtast eller indsæt koden.