VBA PowerPoint

Excel VBA PowerPoint

Usando o VBA podemos automatizar o trabalho que fazemos para o PowerPoint, mas primeiro, a fim de usar o código VBA ou fragmentos para trabalhar no PowerPoint, primeiro trabalhe com as opções de segurança no PowerPoint para habilitar todas as macros e, em seguida, podemos usar a referência VBA do PowerPoint para macros no MS Power Point.

A beleza do VBA é que podemos fazer referência a outros produtos da Microsoft, como “Microsoft Word” e “Microsoft PowerPoint”. Normalmente criamos relatórios no Excel e, em seguida, criamos apresentações em PowerPoint. Todos os usuários do Excel normalmente gastam uma quantidade considerável de tempo para preparar a apresentação de dados e relatórios do Excel. Se você está gastando uma quantidade considerável de tempo preparando apresentações em PowerPoint, este tutorial mostrará como criar uma apresentação em PowerPoint a partir do próprio Excel usando a codificação VBA.

Habilitar modelo de objeto do PowerPoint

Etapa 1: Abra o Editor VBA e vá para Ferramentas e Referências.

Etapa 2: Agora você verá todas as referências ao Projeto VBA. Role para baixo e selecione “Biblioteca de objetos do Microsoft PowerPoint 15.0”.

Etapa 3: Clique em Ok. Agora podemos acessar o PowerPoint do Excel.

Tutorial VBA para criar apresentação em PowerPoint

Podemos criar PPT de duas maneiras, uma usando “Early Binding” e a outra usando “Late Binding”. Mostraremos como criar uma apresentação do PowerPoint usando a técnica de “Early Binding” .

Você pode baixar este modelo VBA PowerPoint Excel aqui - modelo VBA PowerPoint Excel

Normalmente, a partir do Excel preparamos apresentações com base em gráficos e interpretação dos gráficos. Portanto, para esse propósito, criei alguns gráficos e interpretações simples do Excel na mesma planilha.

Etapa 1: inicie a sub-rotina em vba. Agora, para acessar o PowerPoint, já habilitamos o modelo de objeto do PowerPoint nas etapas anteriores, agora, para acessá-lo, precisamos declarar a variável como PowerPoint.Application.

Código:

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

Passo 2: Para adicionar a apresentação ao PowerPoint, precisamos declarar uma variável como PowerPoint.Presentation.

Código:

 Dim PPPresentation As PowerPoint.Presentation

Passo 3: Após adicionar a apresentação ao PowerPoint, precisamos adicionar o Slide. Para declarar a variável como PowerPoint.Slide

Código:

 Dim PPSlide As PowerPoint.Slide

Passo 4: Uma vez que o slide é adicionado ao PowerPoint, precisamos fazer uso de formas no PowerPoint, ou seja, caixas de texto. Para declarar uma variável como PowerPoint.Shape

Código:

 Dim PPShape As PowerPoint.Shape

Passo 5: Agora para acessar todos os gráficos da planilha, precisamos declarar a variável como Excel.ChartObjects.

Código:

 Dim PPCharts As Excel.ChartObject

Ok, para começar o procedimento essas variáveis ​​são suficientes.

Etapa 6: Agora precisamos iniciar o PowerPoint a partir do Excel. Uma vez que é um objeto externo, precisamos defini-lo como um novo powerpoint.

Código:

 Definir PPApp = Novo PowerPoint.Application

Isso iniciará o novo PowerPoint do excel.

Passo 7: Agora a variável PPApp é igual ao PowerPoint que iniciamos. Agora torne este PowerPoint visível e maximize a janela.

 Código:

PPApp.Visible = msoCTrue PPApp.WindowState = ppWindowMaximized

Neste momento apenas execute o código usando a tecla F5 ou manualmente, você deverá ver o aplicativo PowerPoint iniciado como o abaixo.

Etapa 8: Agora precisamos adicionar uma apresentação ao aplicativo PowerPoint que lançamos.

Código:

 Defina PPPresentation = PPApp.Presentations.Add

Agora devemos ver a apresentação do PowerPoint assim.

Etapa 9: Depois de adicionar a apresentação, precisamos adicionar um slide.

Código:

 Defina PPSlide = PPPresentation.Slides.Add (1, ppLayoutTitleOnly)

Agora, isso adicionará o slide de título como o abaixo.

Etapa 10:   Agora que temos mais de um gráfico na planilha, precisamos percorrer cada gráfico e colar na apresentação. Abaixo está o código para copiar e colar o gráfico, bem como a interpretação.

Abaixo está o código completo para você.

Sub PPT_Example () Dim PPApp como PowerPoint.Application Dim PPPresentation As PowerPoint.Presentation Dim PPSlide As PowerPoint.Slide Dim PPShape As PowerPoint.Shape Dim PPCharts As Excel.ChartObject Set PPApp = Novo PowerPoint.Application PPApp.Visible = msoCTrue PPApp. ppWindowMaximized 'Add Presentation Set PPPresentation = PPApp.Presentations.Add' Loop através de cada gráfico no Excel e cole no PowerPoint para cada PPCharts em ActiveSheet.ChartObjects PPApp.ActivePresentation.Slides.Add PPApp.ActivePresentation.Slides.Countout + 1, pp PPApp.ActiveWindow.View.GotoSlide PPApp.ActivePresentation.Slides.Count Set PPSlide = PPApp.ActivePresentation.Slides (PPApp.ActivePresentation.Slides.Count) 'Copie o gráfico e cole em Powerpoint PPChartAreacopy.Select ActiveChart.ChartAreacopy.Select ActiveChart.ChartAreacopy.Select ActiveChart. .PasteSpecial (DataType:= ppPasteMetafilePicture) .Select 'Adicionar título ao slide PPSlide.Shapes (1) .TextFrame.TextRange.Text = PPCharts.Chart.ChartTitle.Text' Alinhamento do gráfico PPApp.ActiveWindow.Selection.ShapeRange.Left = 15 PPApp .Selection.ShapeRange.Top = 125 PPSlide.Shapes (2) .Width = 200 PPSlide.Shapes (2) .Left = 505 'Adicionar interpretação If InStr (PPSlide.Shapes (1) .TextFrame.TextRange.Text, "Region" ) Depois, PPSlide.Shapes (2) .TextFrame.TextRange.Text = Range ("K2"). Value & vbNewLine PPSlide.Shapes (2) .TextFrame.TextRange.InsertAfter (Range ("K3"). Value & vbNewLine) ' Caso contrário, se o gráfico for o gráfico de consumo "Renovável", insira os comentários apropriados ElseIf InStr (PPSlide.Shapes (1) .TextFrame.TextRange.Text, "Mês") Então PPSlide.Shapes (2) .TextFrame.TextRange.Text = Intervalo ("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 'Agora vamos alterar o tamanho da fonte da caixa de texto explicativo PPSlide.Shapes (2) .TextFrame.TextRange.Font.Size = 16 Next PPCharts End Sub