Com crear i inserir formes a PowerPoint amb VBA?

Fa un parell de dies, volia automatitzar la tasca més aviat mundana de crear algunes diapositives de PowerPoint. Quan automatitzeu PowerPoint, normalment treballeu amb la col·lecció de diapositives i formes. Les diapositives s'explicaran per si mateixes i les formes són pràcticament tota la resta, inclosos quadres de text, botons d'acció, objectes multimèdia, etiquetes, imatges, texts destacats, diagrames de flux, etc. Tot i que mostraré les tècniques amb PowerPoint, algunes de les sintaxis són realment aplicables a Microsoft Word i Excel.

Només per resumir, abans de començar amb el desenvolupament de macros VBA a PowerPoint, heu de tenir la pestanya de desenvolupament activada .

En primer lloc, comencem creant automàticament una presentació amb algunes diapositives tal com es mostra en aquest tutorial: creant una presentació en VBA .

Ara podem començar a treballar amb Shapes. En primer lloc, seguim endavant i obrim l'Editor VBA prement Alt + F11. Si heu seguit el tutorial anterior, hauríeu de tenir el mòdul 1 a la vostra llista de mòduls (com es mostra a continuació)

Treballant amb formes amb VBA

Afegir un quadre de text amb VBA

Començarem afegint un quadre de text vertical a la nostra primera diapositiva de la presentació. Afegiu el codi següent al Mòdul 1, seguiu endavant i premeu el botó Desa (Ctrl+s) i executeu la vostra macro (premeu F5 o premeu Executar formulari de sub/usuari).

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

Tingueu en compte que podeu canviar la mida del vostre quadre de text amb força facilitat amb VBA. En aquest cas, canviarem la mida de la primera forma a la segona diapositiva, no dubteu a modificar-la segons sigui necessari.

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

Efectes de text amb VBA

Suposem ara que volem afegir un quadre de text a totes les diapositives de la presentació, aquesta vegada una mica més atractiu visualment. Per fer-ho, utilitzarem VBA per crear efectes de text personalitzats que podem incrustar en una o més diapositives de la presentació. Primer passarem per les diapositives de la presentació i després afegirem l'efecte de text segons sigui necessari.

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í teniu el resultat ;-):

Com crear i inserir formes a PowerPoint amb VBA?

Tingueu en compte que també podeu utilitzar una marca d'aigua senzilla per aconseguir aquest resultat específic.

Textos destacats de PowerPoint amb VBA

El nostre següent exemple serà afegir textos destacats a la vostra presentació. En aquest exemple afegirem un text destacat a la segona 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

Establiment de propietats per a una forma

Moltes propietats de format de les formes no estan establertes per propietats que s'apliquen directament a l'  objecte Shape  o  ShapeRange  . En canvi, els atributs de forma relacionats s'agrupen sota objectes secundaris, com ara l'  objecte FillFormat  , que conté totes les propietats relacionades amb el farciment de la forma, o l'  objecte LinkFormat  , que conté totes les propietats úniques dels objectes OLE enllaçats. Per establir propietats per a una forma, primer heu de retornar l'objecte que representa el conjunt d'atributs de forma relacionats i després establir les propietats d'aquest objecte retornat. Per exemple, utilitzeu la  propietat Fill  per retornar l'  objecte FillFormat  i, a continuació, establiu la  propietat ForeColor  de l'  objecte FillFormat  per establir el color de primer pla de farciment per a la forma especificada, tal com es mostra a l'exemple següent.

VB

Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

Aplicar una propietat o mètode a diverses formes al mateix temps

A la interfície d'usuari, hi ha algunes operacions que podeu realitzar amb diverses formes seleccionades; per exemple, podeu seleccionar diverses formes i establir tots els seus farcits individuals alhora. Hi ha altres operacions que només podeu realitzar amb una única forma seleccionada; per exemple, només podeu editar el text d'una forma si se n'ha seleccionat una única.

A Visual Basic, hi ha dues maneres d'aplicar propietats i mètodes a un conjunt de formes. Aquestes dues maneres us permeten realitzar qualsevol operació que pugueu realitzar en una sola forma en una sèrie de formes, tant si podeu realitzar la mateixa operació com si no a la interfície d'usuari.

  • Si l'operació funciona en diverses formes seleccionades a la interfície d'usuari, podeu realitzar la mateixa operació a Visual Basic construint una  col·lecció ShapeRange  que contingui les formes amb les quals voleu treballar i aplicant les propietats i mètodes adequats directament a la   col·lecció ShapeRange .

  • Si l'operació no funciona en diverses formes seleccionades a la interfície d'usuari, encara podeu realitzar l'operació a Visual Basic fent un bucle per la  col·lecció Shapes  o mitjançant una  col·lecció ShapeRange  que conté les formes amb les quals voleu treballar i aplicant les propietats adequades. i mètodes als  objectes Shape individuals  de la col·lecció.

Moltes propietats i mètodes que s'apliquen a l'  objecte Shape  i a  la col·lecció ShapeRange  fallen si s'apliquen a determinats tipus de formes. Per exemple, la  propietat TextFrame  falla si s'aplica a una forma que no pot contenir text. Si no esteu segur que cada forma d'una  col·lecció ShapeRange  pot tenir una propietat o un mètode determinats aplicats, no apliqueu la propietat o el mètode a la  col·lecció ShapeRange  . Si voleu aplicar una d'aquestes propietats o mètodes a una col·lecció de formes, heu de recórrer la col·lecció i provar cada forma individual per assegurar-vos que és un tipus de forma adequat abans d'aplicar-hi la propietat o el mètode.

Aplicació d'una propietat o mètode a una col·lecció ShapeRange

Si podeu realitzar una operació sobre diverses formes seleccionades a la interfície d'usuari alhora, podeu fer l'equivalent programàtic mitjançant la construcció d'una  col·lecció ShapeRange  i després aplicant-hi les propietats o mètodes adequats. L'exemple següent construeix un rang de formes que conté les formes automàtiques anomenades "Estrella gran" i "Estrella petita" activades i els hi aplica un farciment degradat i un farciment degradat.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
Set myRange = myDocument.Shapes _ 
    .Range(Array("Big Star", "Little Star")) 
myRange.Fill.PresetGradient msoGradientHorizontal, _ 
    1, msoGradientBrass

Les següents són directrius generals sobre com es comporten les propietats i els mètodes quan s'apliquen a una   col·lecció ShapeRange .

  • Aplicar un mètode a la col·lecció és equivalent a aplicar el mètode a cada  objecte Shape individual  d'aquesta col·lecció.

  • Establir el valor d'una propietat de la col·lecció és equivalent a establir el valor de la propietat de cada forma individual d'aquest rang.

  • Una propietat de la col·lecció que retorna una constant retorna el valor de la propietat per a una forma individual de la col·lecció si totes les formes de la col·lecció tenen el mateix valor per a aquesta propietat. Si no totes les formes de la col·lecció tenen el mateix valor per a la propietat, retorna la constant "mixta".

  • Una propietat de la col·lecció que retorna un tipus de dades simple (com ara  LongSingleString ) retorna el valor de la propietat per a una forma individual si totes les formes de la col·lecció tenen el mateix valor per a aquesta propietat.

  • El valor d'algunes propietats només es pot tornar o establir si hi ha exactament una forma a la col·lecció. Si hi ha més d'una forma a la col·lecció, es produeix un error en temps d'execució. Aquest és generalment el cas de retornar o establir propietats quan l'acció equivalent a la interfície d'usuari només és possible amb una forma única (accions com ara editar text en una forma o editar els punts d'una forma lliure).

Les directrius anteriors també s'apliquen quan configureu propietats de formes agrupades sota objectes secundaris de la  col·lecció ShapeRange  , com ara l'  objecte FillFormat  . Si l'objecte secundari representa operacions que es poden realitzar en diversos objectes seleccionats a la interfície d'usuari, podreu retornar l'objecte d'una  col·lecció ShapeRange  i establir-ne les propietats. Per exemple, podeu utilitzar la  propietat Fill  per retornar l'  objecte FillFormat  que representa els farcits de totes les formes de la  col·lecció ShapeRange  . L'establiment de les propietats d'aquest  objecte FillFormat  establirà les mateixes propietats per a totes les formes individuals de la  col·lecció ShapeRange  .

Recorre una col·lecció Shapes o ShapeRange

Fins i tot si no podeu realitzar una operació sobre diverses formes a la interfície d'usuari alhora seleccionant-les i després utilitzant una ordre, podeu realitzar l'acció equivalent mitjançant programació fent un bucle per la  col·lecció Shapes  o mitjançant una  col·lecció ShapeRange  que conté les formes que voleu treballar i aplicar les propietats i mètodes adequats als  objectes Shape individuals  de la col·lecció. L'exemple següent fa un bucle a través de totes les formes i afegeix text a cada forma que és una forma automàtica. i afegeix text a cada forma que sigui una forma automàtica.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
For Each sh In myDocument.Shapes 
    If sh.Type = msoAutoShape Then 
        sh.TextFrame.TextRange.InsertAfter " (version 1)" 
    End If 
Next

L'exemple següent construeix  la col·lecció ShapeRange  que conté totes les formes seleccionades actualment a la finestra activa i estableix el text de cada forma de la col·lecció que pot contenir text.

VB

For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next

Alinear, distribuir i agrupar formes en un rang de formes

Utilitzeu els  mètodes Alinear  i  Distribuir  per posicionar un conjunt de formes entre si o en relació amb el document que les conté. Utilitzeu el  mètode Group  o  Regroup  per formar una única forma agrupada a partir d'un conjunt de formes.


Instruccions per escoltar música a Google Maps

Instruccions per escoltar música a Google Maps

Instruccions per escoltar música a Google Maps. Actualment, els usuaris poden viatjar i escoltar música mitjançant l'aplicació Google Map a l'iPhone. Avui, WebTech360 us convida

Instruccions per utilitzar LifeBOX - servei demmagatzematge en línia de Viettel

Instruccions per utilitzar LifeBOX - servei demmagatzematge en línia de Viettel

Instruccions per utilitzar LifeBOX: el servei d'emmagatzematge en línia de Viettel, LifeBOX és un servei d'emmagatzematge en línia recentment llançat de Viettel amb moltes funcions superiors

Com actualitzar lestat a Facebook Messenger

Com actualitzar lestat a Facebook Messenger

Com actualitzar l'estat a Facebook Messenger, Facebook Messenger en l'última versió ha proporcionat als usuaris una funció extremadament útil: canviar

Instruccions per al joc de cartes Werewolf Online a lordinador

Instruccions per al joc de cartes Werewolf Online a lordinador

Instruccions per al joc de cartes Werewolf Online a l'ordinador, Instruccions per descarregar, instal·lar i jugar Werewolf Online a l'ordinador mitjançant l'emulador LDPlayer extremadament senzill.

Instruccions per eliminar històries publicades a Instagram

Instruccions per eliminar històries publicades a Instagram

Instruccions per suprimir històries publicades a Instagram. Si vols suprimir una història a Instagram però no saps com? Avui WebTech360

Instruccions per afegir fotos destacades a Facebook

Instruccions per afegir fotos destacades a Facebook

Instruccions per afegir imatges destacades a Facebook Actualment, Facebook ens permet configurar imatges destacades a les nostres pàgines personals. Aquí us convidem

Com solucionar lerror de Windows Quick Assist que no funciona

Com solucionar lerror de Windows Quick Assist que no funciona

Com solucionar l'error de Windows Quick Assist que no funciona, Windows Quick Assist us ajuda a connectar-vos fàcilment a un ordinador remot. Tanmateix, de vegades també genera errors. Però,

Instruccions per activar/desactivar la barreja de cançons a Spotify

Instruccions per activar/desactivar la barreja de cançons a Spotify

Instruccions per activar/desactivar la barreja de cançons a Spotify, per ajudar la gent a canviar ràpidament l'ordre de les cançons a la llista de reproducció de música anterior

Instruccions per gravar àudio en secret a liPhone

Instruccions per gravar àudio en secret a liPhone

Instruccions per a la gravació secreta a l'iPhone, actualment, els usuaris d'iPhone poden gravar en secret tocant la part posterior del telèfon. Avui, WebTech360 us convida

Com utilitzar Mixamo per animar models 3D personalitzats

Com utilitzar Mixamo per animar models 3D personalitzats

Com utilitzar Mixamo per animar models 3D personalitzats Amb Mixamo, podeu importar fàcilment un model 3D i aplicar-hi efectes d'animació. A continuació es mostren les instruccions d'ús