VBA PowerPoint

Excel VBA PowerPoint

Med VBA kan vi automatisera det arbete vi gör för PowerPoint, men först för att kunna använda VBA-kod eller utdrag för att arbeta i powerpoint, arbeta först genom säkerhetsalternativen i PowerPoint för att aktivera alla makron och sedan kan vi använda PowerPoint VBA-referens för makron i MS PowerPoint.

Skönheten i VBA är att vi kan referera till andra Microsoft-produkter som “Microsoft Word” och “Microsoft PowerPoint”. Vi skapar vanligtvis rapporter i Excel och skapar sedan PowerPoint-presentationer. Alla Excel-användare spenderar vanligtvis mycket tid på att förbereda presentationen utifrån Excel-data och rapporter. Om du spenderar mycket tid på att förbereda PowerPoint-presentationer kommer den här guiden att visa dig hur du skapar en PowerPoint-presentation från att utmärka sig själv med VBA-kodning.

Aktivera Powerpoint Object Model

Steg 1: Öppna VBA Editor och gå sedan till Verktyg och referenser.

Steg 2: Nu ser du alla referenser till VBA-projektet. Rulla ner och välj “Microsoft PowerPoint 15.0 Object Library”.

Steg 3: Klicka på Ok. Nu kan vi komma åt PowerPoint från Excel.

VBA-handledning för att skapa PowerPoint-presentation

Vi kan skapa PPT på två sätt genom att använda "Early Binding" och en annan med "Late Binding". Vi visar dig hur du skapar en PowerPoint-presentation genom att använda tekniken "Early Binding" .

Du kan ladda ner denna VBA PowerPoint Excel-mall här - VBA PowerPoint Excel-mall

Från Excel förbereder vi vanligtvis presentationer baserade på diagram och tolkning av diagrammen. Så för detta ändamål har jag skapat några enkla exceldiagram och tolkning i samma kalkylblad.

Steg 1: Starta subrutinen i vba. Nu för att komma åt PowerPoint har vi redan aktiverat PowerPoint-objektmodellen i de tidigare stegen, nu för att komma åt detta måste vi deklarera variabeln som PowerPoint.Application.

Koda:

 Sub PPT_Example () Dim PPApp som PowerPoint.Application End Sub 

Steg 2: För att lägga till presentationen i PowerPoint måste vi deklarera en variabel som PowerPoint. Presentation.

Koda:

 Dim PPPresentation Som PowerPoint.Presentation

Steg 3: Efter att ha lagt till presentationen i PowerPoint måste vi lägga till Slide. Att deklarera variabeln som PowerPoint.Slide

Koda:

 Dim PPSlide som PowerPoint.Slide

Steg 4: När bilden har lagts till i PowerPoint måste vi använda former i PowerPoint, dvs textrutor. Att deklarera en variabel som PowerPoint.Shape

Koda:

 Dim PPShape Som PowerPoint.Shape

Steg 5: För att komma åt alla diagram i kalkylbladet måste vi deklarera variabeln som Excel.ChartObjects.

Koda:

 Dim PPCharts som Excel.ChartObject

Okej, för att inleda förfarandet är dessa variabler tillräckliga.

Steg 6: Nu måste vi starta PowerPoint från Excel. Eftersom det är ett externt objekt måste vi ställa in detta som en ny powerpoint.

Koda:

 Ställ in PPApp = ny PowerPoint.Application

Detta kommer att starta den nya PowerPoint från Excel.

Steg 7: Nu är variabeln PPApp lika med PowerPoint vi har lanserat. Gör nu denna PowerPoint synlig och maximera fönstret.

 Koda:

PPApp.Visible = msoCTrue PPApp.WindowState = ppWindowMaximized

Just nu kör du bara koden med F5-tangenten eller manuellt, du bör se PowerPoint-appen startas som den nedan.

Steg 8: Nu måste vi lägga till en presentation i PowerPoint-appen vi har lanserat.

Koda:

 Ställ in PPPresentation = PPApp.Presentations.Add

Nu ska vi se PowerPoint-presentationen så här.

Steg 9: Efter att ha lagt till presentationen måste vi lägga till en bild.

Koda:

 Ställ in PPSlide = PPPresentation.Slides.Add (1, ppLayoutTitleOnly)

Nu kommer detta att lägga till titelglaset som nedan.

Steg 10:   Nu har vi mer än ett diagram i kalkylbladet vi behöver gå igenom varje diagram och klistra in i presentationen. Nedan följer koden för att kopiera och klistra in diagrammet samt tolkningen.

Nedan är den fullständiga koden för dig.

 Sub PPT_Example() Dim PPApp As PowerPoint.Application Dim PPPresentation As PowerPoint.Presentation Dim PPSlide As PowerPoint.Slide Dim PPShape As PowerPoint.Shape Dim PPCharts As Excel.ChartObject Set PPApp = New PowerPoint.Application PPApp.Visible = msoCTrue PPApp.WindowState = ppWindowMaximized 'Add Presentation Set PPPresentation = PPApp.Presentations.Add 'Loop through each chart in the Excel and paste into the PowerPoint For Each PPCharts In ActiveSheet.ChartObjects PPApp.ActivePresentation.Slides.Add PPApp.ActivePresentation.Slides.Count + 1, ppLayoutText PPApp.ActiveWindow.View.GotoSlide PPApp.ActivePresentation.Slides.Count Set PPSlide = PPApp.ActivePresentation.Slides(PPApp.ActivePresentation.Slides.Count) 'Copy the chart and paste in Powerpoint PPCharts.Select ActiveChart.ChartArea.Copy PPSlide.Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture).Select 'Add heading to the slide PPSlide.Shapes(1).TextFrame.TextRange.Text = PPCharts.Chart.ChartTitle.Text 'Allignment of the chart PPApp.ActiveWindow.Selection.ShapeRange.Left = 15 PPApp.ActiveWindow.Selection.ShapeRange.Top = 125 PPSlide.Shapes(2).Width = 200 PPSlide.Shapes(2).Left = 505 'Add interpretation If InStr(PPSlide.Shapes(1).TextFrame.TextRange.Text, "Region") Then PPSlide.Shapes(2).TextFrame.TextRange.Text = Range("K2").Value & vbNewLine PPSlide.Shapes(2).TextFrame.TextRange.InsertAfter (Range("K3").Value & vbNewLine) 'Else if the chart is the "Renewable" consumption chart, then enter the appropriate comments ElseIf InStr(PPSlide.Shapes(1).TextFrame.TextRange.Text, "Month") Then PPSlide.Shapes(2).TextFrame.TextRange.Text = Range("K20").Value & vbNewLine PPSlide.Shapes(2).TextFrame.TextRange.InsertAfter (Range("K21").Value & vbNewLine) PPSlide.Shapes(2).TextFrame.TextRange.InsertAfter (Range("K22").Value & vbNewLine) End If 'Now let's change the font size of the callouts box PPSlide.Shapes(2).TextFrame.TextRange.Font.Size = 16 Next PPCharts End Sub