Det har blitt sagt at opptil 50 prosent av PowerPoint-presentasjoner inneholder data som er kopiert rett ut av Excel. Denne uttalelsen er ikke vanskelig å tro. Det er ofte mye enklere å analysere og lage diagrammer og datavisninger i Excel enn i PowerPoint. Etter at disse diagrammene og datavisningene er opprettet, hvorfor flytter du dem ikke til PowerPoint? Makroen i denne delen lar deg dynamisk lage PowerPoint-lysbilder som inneholder data fra et område du angir.
Du kan laste ned et fungerende eksempel på sending av Excel-data til PowerPoint .
Hvordan makroen fungerer
I dette eksemplet kopierer du et område fra en Excel-fil og limer inn det området til et lysbilde i en nyopprettet PowerPoint-presentasjon.
Husk at fordi denne koden skal kjøres fra Excel, må du angi en referanse til Microsoft PowerPoint Object Library. Du kan angi referansen ved å åpne Visual Basic Editor i Excel og velge Verktøy → Referanser. Rull ned til du finner oppføringen Microsoft PowerPoint xx Objektbibliotek, der xx er din versjon av PowerPoint. Sett en hake i avmerkingsboksen ved siden av oppføringen.
Sub CopyRangeToPresentation ()
'Trinn 1: Deklarer variablene dine
Dim PP Som PowerPoint.Application
Dim PPPres Som PowerPoint. Presentasjon
Dim PPSlide Som PowerPoint.Slide
Dim SlideTitle Som streng
'Trinn 2: Åpne PowerPoint og lag en ny presentasjon
Sett PP = New PowerPoint.Application
Sett PPPres = PP.Presentations.Add
PP.Synlig = Sant
'Trinn 3: Legg til nytt lysbilde som lysbilde 1 og sett fokus på det
Sett PPSlide = PPPres.Slides.Add(1, ppLayoutTitleOnly)
PPSlide.Select
'Trinn 4: Kopier området som et bilde
Sheets("Slide Data").Range("A1:J28").CopyPicture _
Utseende:=xlSkjerm, Format:=xlBilde
'Trinn 5: Lim inn bildet og juster posisjonen
PPSlide.Shapes.Paste.Select
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
'Trinn 6: Legg til tittelen på lysbildet
SlideTitle = "Mitt første PowerPoint-lysbilde"
PPSlide.Shapes.Title.TextFrame.TextRange.Text = SlideTitle
'Trinn 7: Minneopprydding
PP.Aktiver
Sett PPSlide = Ingenting
Sett PPPres = Ingenting
Sett PP = Ingenting
Avslutt sub
I trinn 1 erklærer du fire variabler: PP er en objektvariabel som viser PowerPoint Application-objektet, PPPres er en objektvariabel som viser PowerPoint Presentation-objektet, PPSlide er en objektvariabel som viser PowerPoint Slide-objektet, og SlideTitle er en streng variabel som brukes til å sende teksten til lysbildetittelen.
Trinn 2 åpner PowerPoint med en tom presentasjon. Merk at du setter Synlig-egenskapen til PowerPoint-applikasjonen til True for å sikre at du kan se handlingen mens koden kjøres.
I trinn 3 legger du til et nytt lysbilde i presentasjonen ved å bruke Legg til-metoden for lysbildeobjekt. Merk at du bruker ppLayoutTitleOnly, og sørg for at lysbildet lages med en titteltekstramme. Du tar deretter et ekstra steg og setter fokus på lysbildet. Det vil si at du uttrykkelig ber PowerPoint om å velge dette lysbildet, noe som gjør det aktivt.
I trinn 4 bruker du CopyPicture-metoden for å kopiere målområdet som et bilde. Området som kopieres her er område A1 til J28 i kategorien Lysbildedata.
Trinn 5 limer bildet inn i det aktive lysbildet og sentrerer bildet både horisontalt og vertikalt.
I trinn 6 lagrer du teksten for tittelen i en strengvariabel, og sender deretter variabelen til PowerPoint for å bruke tekst på titteltekstrammen.
I trinn 7 slipper du objektene som er tildelt variablene dine, og reduserer sjansen for problemer forårsaket av røde objekter som kan forbli åpne i minnet.
Hvordan bruke makroen
For å implementere denne makroen kan du kopiere og lime den inn i en standardmodul:
Aktiver Visual Basic Editor ved å trykke Alt+F11.
Finn navnet på prosjektet/arbeidsboken i prosjektvinduet.
Velg Sett inn → Modul.
Skriv eller lim inn koden.