Det har sagts att upp till 50 procent av PowerPoint-presentationer innehåller data som har kopierats direkt ur Excel. Detta uttalande är inte svårt att tro. Det är ofta mycket lättare att analysera och skapa diagram och datavyer i Excel än i PowerPoint. När dessa diagram och datavyer har skapats, varför skulle du inte bara flytta dem till PowerPoint? Makrot i det här avsnittet låter dig skapa PowerPoint-bilder dynamiskt som innehåller data från ett intervall som du anger.
Du kan ladda ner ett fungerande exempel på att skicka Excel-data till PowerPoint .
Hur makrot fungerar
I det här exemplet kopierar du ett intervall från en Excel-fil och klistrar in det intervallet på en bild i en nyskapad PowerPoint-presentation.
Tänk på att eftersom den här koden kommer att köras från Excel måste du ange en referens till Microsoft PowerPoint Object Library. Du kan ställa in referensen genom att öppna Visual Basic Editor i Excel och välja Verktyg→Referenser. Rulla ner tills du hittar posten Microsoft PowerPoint xx Object Library, där xx är din version av PowerPoint. Placera en bock i kryssrutan bredvid posten.
Sub CopyRangeToPresentation ()
'Steg 1: Deklarera dina variabler
Dim PP Som PowerPoint.Application
Dim PPPres Som PowerPoint.Presentation
Dim PPSlide Som PowerPoint.Slide
Dim SlideTitle som sträng
'Steg 2: Öppna PowerPoint och skapa en ny presentation
Ställ in PP = New PowerPoint.Application
Ställ in PPPres = PP.Presentations.Add
PP.Synlig = Sant
'Steg 3: Lägg till ny bild som bild 1 och ställ in fokus på den
Ange PPSlide = PPPres.Slides.Add(1, ppLayoutTitleOnly)
PPSlide.Select
'Steg 4: Kopiera området som en bild
Sheets("Slide Data").Range("A1:J28").CopyPicture _
Utseende:=xlSkärm, Format:=xlBild
'Steg 5: Klistra in bilden och justera dess position
PPSlide.Shapes.Paste.Select
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
'Steg 6: Lägg till titeln på bilden
SlideTitle = "Min första PowerPoint-bild"
PPSlide.Shapes.Title.TextFrame.TextRange.Text = SlideTitle
'Steg 7: Minnesrensning
PP.Aktivera
Ställ in PPSlide = Ingenting
Ställ in PPPres = Ingenting
Ställ in PP = Ingenting
Avsluta sub
I steg 1 deklarerar du fyra variabler: PP är en objektvariabel som exponerar PowerPoint Application-objektet, PPPres är en objektvariabel som exponerar PowerPoint Presentation-objektet, PPSlide är en objektvariabel som exponerar PowerPoint Slide-objektet och SlideTitle är en sträng variabel som används för att skicka texten till bildrubriken.
Steg 2 öppnar PowerPoint med en tom presentation. Observera att du ställer in egenskapen Visible för PowerPoint-applikationen till True för att säkerställa att du kan se åtgärden när koden körs.
I steg 3 lägger du till en ny bild i presentationen med hjälp av Lägg till metoden för Slide-objekt. Observera att du använder ppLayoutTitleOnly, och se till att bilden skapas med en rubriktextram. Du tar sedan ett extra steg och sätter fokus på rutschkanan. Det vill säga, du säger uttryckligen till PowerPoint att välja den här bilden, vilket gör den aktiv.
I steg 4 använder du metoden CopyPicture för att kopiera målområdet som en bild. Området som kopieras här är intervall A1 till J28 på fliken Slide Data.
Steg 5 klistrar in bilden i den aktiva bilden och centrerar bilden både horisontellt och vertikalt.
I steg 6 lagrar du texten för titeln i en strängvariabel och skickar sedan variabeln till PowerPoint för att tillämpa text på titeltextramen.
I steg 7 släpper du objekten som tilldelats dina variabler, vilket minskar risken för problem orsakade av rouge-objekt som kan förbli öppna i minnet.
Hur man använder makrot
För att implementera detta makro kan du kopiera och klistra in det i en standardmodul:
Aktivera Visual Basic Editor genom att trycka på Alt+F11.
Hitta ditt projekt-/arbetsboksnamn i projektfönstret.
Välj Infoga → Modul.
Skriv eller klistra in koden.