Como crear e inserir formas en PowerPoint con VBA?

Hai uns días, quería automatizar a tarefa bastante mundana de crear algunhas diapositivas de PowerPoint. Cando automatizas PowerPoint normalmente traballas coa colección Presentacións e formas. As diapositivas son bastante explicativas e as formas son practicamente todo o demais, incluíndo caixas de texto, botóns de acción, obxectos multimedia, etiquetas, imaxes, textos, diagramas de fluxo, etc. Aínda que vou mostrar as técnicas con PowerPoint, parte da sintaxe é bastante aplicable a Microsoft Word e Excel.

Só para recapitular, antes de comezar co desenvolvemento de macros VBA en PowerPoint, debes ter a pestana de desenvolvemento activada .

En primeiro lugar, imos comezar creando automaticamente unha presentación con algunhas diapositivas como se mostra neste tutorial: crear unha presentación en VBA .

Agora podemos comezar a traballar con Shapes. En primeiro lugar, sigamos e abramos o Editor de VBA premendo Alt + F11. Se seguiches o titorial anterior, deberías ter o módulo 1 na túa lista de módulos (como se mostra a continuación)

Traballar con formas con VBA

Engadindo unha caixa de texto con VBA

Comezaremos engadindo unha caixa de texto vertical á nosa primeira diapositiva da presentación. Engade o seguinte código ao Módulo1, despois preme o botón Gardar (Ctrl+s) e executa a túa macro (preme F5 ou Executar formulario sub/usuario).

Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)

    With MySlide.Shapes
        .AddTextbox(Orientation:=msoTextOrientationVertical, _
         Left:=90, Top:=200, Width:=80, _
         Height:=200).TextFrame.TextRange.Text _
        = ("This is my vertical text box")

End With

End Sub

Teña en conta que pode cambiar o tamaño da súa caixa de texto con bastante facilidade con VBA. Neste caso, cambiaremos o tamaño da primeira forma na segunda diapositiva, non dubides en modificala segundo sexa necesario.

Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)

'Add your required dimensions as needed below
   With MyShape
         .Width = 200
         .Height = 35

End With
End Sub

Efectos de texto con VBA

Supoñamos agora que queremos engadir un cadro de texto a todas as diapositivas da presentación, esta vez un pouco máis atractivo visualmente. Para iso, usaremos VBA para crear efectos de texto personalizados que podemos incorporar nunha ou máis diapositivas da presentación. Primeiro repasaremos as diapositivas da presentación e despois engadiremos o efecto de texto segundo sexa necesario.

Sub SetEffects()

Dim i As Integer

For i = 1 To ActivePresentation.Slides.Count
    ActivePresentation.Slides(i) _
    .Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
    "Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next

End Sub

Aquí tedes o resultado ;-):

Como crear e inserir formas en PowerPoint con VBA?

Teña en conta que tamén pode usar unha marca de auga sinxela para lograr este resultado específico.

Textos de PowerPoint con VBA

O noso seguinte exemplo será engadir textos destacados á túa presentación. Neste exemplo engadiremos unha chamada á segunda diapositiva.

Sub CreateCallout()

ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _  Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"

End Sub

Como escribir de dereita a esquerda en Microsoft Office 2016, 2019 / 365?

Como escribir de dereita a esquerda en Microsoft Office 2016, 2019 / 365?

Aprende a cambiar de teclado LTR a RTL en Microsoft Word.

Como configurar a cor da fonte do texto de Excel con VBA?

Como configurar a cor da fonte do texto de Excel con VBA?

Aprende a usar Excel VBA para cambiar o texto, a cor, o tamaño e as propiedades da cela mediante programación.

Como comprobar se unha cela ou un intervalo de varias celas está baleiro con Excel VBA?

Como comprobar se unha cela ou un intervalo de varias celas está baleiro con Excel VBA?

Aprende a programar vba para buscar celas baleiras nunha folla de traballo ou rango de celas.

Rendemento lento de Microsoft Word? Sete consellos para facer que Word 365 / 2019 / 2016 funcione moito máis rápido

Rendemento lento de Microsoft Word? Sete consellos para facer que Word 365 / 2019 / 2016 funcione moito máis rápido

Aprende como podes facer que Word 365 funcione máis rápido desactivando os complementos, actualizando o teu hardware e eliminando

Podo eliminar os ficheiros vc_red do disco duro do meu ordenador persoal?

Podo eliminar os ficheiros vc_red do disco duro do meu ordenador persoal?

Aprende todo o necesario sobre a instalación de VC_RED e os ficheiros de armario. É seguro eliminalos do teu sistema operativo Windows 7 e 10?

Mostrar o texto do encabezado e do pé de páxina só na primeira páxina en Word 365/2016/2019 e Google Docs?

Mostrar o texto do encabezado e do pé de páxina só na primeira páxina en Word 365/2016/2019 e Google Docs?

Aprende a mostrar o pé de páxina e o encabezado na primeira páxina só en Word 365, 2016 e 2019; así como en Documentos de Google

Como traballar coas caixas de mensaxes e de entrada en PowerPoint VBA?

Como traballar coas caixas de mensaxes e de entrada en PowerPoint VBA?

Aprende a codificar caixas de mensaxes e entradas con VBA en PowerPoint

Como crear e engadir diapositivas a presentacións de PowerPoint con VBA?

Como crear e engadir diapositivas a presentacións de PowerPoint con VBA?

Aprende a escribir unha macro VBA sinxela para inserir diapositivas e crear unha nova presentación

Como podo modificar as cores do meu tema de visualización de Office 2016?

Como podo modificar as cores do meu tema de visualización de Office 2016?

Aprende a aplicar esquemas de cores personalizados de Office.

Como abrir ficheiros .one en ordenadores MAC e Windows?

Como abrir ficheiros .one en ordenadores MAC e Windows?

Aprende a lanzar extensións de ficheiros de OneNote de MAC e Windows