Hvordan lage og sette inn former i PowerPoint med VBA?

For et par dager siden ønsket jeg å automatisere den ganske verdslige oppgaven med å lage noen PowerPoint-lysbilder. Når du automatiserer PowerPoint, jobber du vanligvis med Slides and Shapes-samlingen. Lysbilder er ganske selvforklarende, og former er stort sett alt annet, inkludert tekstbokser, handlingsknapper, medieobjekter, etiketter, bilder, bildetekster, flytskjemaer og så videre og så videre. Selv om jeg skal vise frem teknikkene med PowerPoint, er noe av syntaksen faktisk ganske anvendelig for Microsoft Word og Excel.

Bare for å oppsummere, før du kommer i gang med VBA-makroutvikling i PowerPoint, må du ha utviklingsfanen aktivert .

Først og fremst, la oss starte med å automatisk lage en presentasjon med noen lysbilder som vist i denne opplæringen: lage en presentasjon i VBA .

Nå kan vi begynne å jobbe med Shapes. Først og fremst, la oss gå videre og åpne VBA Editor ved å trykke Alt+ F11. Hvis du fulgte den forrige opplæringen, bør du ha modul 1 i modullisten din (som vist nedenfor)

Arbeide med former med VBA

Legge til en tekstboks med VBA

Vi starter med å legge til en vertikal tekstboks i vårt første lysbilde i presentasjonen. Legg til følgende kode til Module1, fortsett og trykk Lagre-knappen (Ctrl+s) og Kjør makroen din (trykk F5 eller Kjør Sub/User Form).

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

Merk at du er i stand til å endre størrelsen på tekstboksdimensjonene ganske enkelt med VBA. I dette tilfellet endrer vi størrelsen på den første formen i det andre lysbildet, endre gjerne etter behov.

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

Teksteffekter med VBA

La oss nå anta at vi ønsker å legge til en tekstboks til alle lysbildene i presentasjonen, denne gangen litt mer visuelt tiltalende. For å gjøre det bruker vi VBA til å lage egendefinerte teksteffekter som vi kan bygge inn i ett eller flere lysbilder i presentasjonen. Vi går først gjennom presentasjonslysbildene og legger deretter til teksteffekten etter behov.

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

Her er resultatet ;-):

Hvordan lage og sette inn former i PowerPoint med VBA?

Merk at du like godt kan bruke et enkelt vannmerke for å oppnå dette spesifikke resultatet.

PowerPoint-meldinger med VBA

Vårt neste eksempel vil være å legge til infomeldinger i presentasjonen din. I dette eksemplet legger vi til en bildetekst på det andre lysbildet.

Sub CreateCallout()

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

End Sub

Angi egenskaper for en form

Mange formateringsegenskaper for figurer er ikke angitt av egenskaper som gjelder direkte for  Shape-  eller  ShapeRange  -objektet. I stedet er relaterte formattributter gruppert under sekundære objekter, for eksempel  FillFormat-  objektet, som inneholder alle egenskapene som er relatert til figurens fyll, eller  LinkFormat  -objektet, som inneholder alle egenskapene som er unike for koblede OLE-objekter. For å angi egenskaper for en form, må du først returnere objektet som representerer settet med relaterte formattributter og deretter angi egenskaper for det returnerte objektet. For eksempel bruker du  Fill-  egenskapen til å returnere  FillFormat-  objektet, og deretter angir du  ForeColor-  egenskapen til  FillFormat-  objektet for å angi fyllforgrunnsfargen for den angitte formen, som vist i følgende eksempel.

VB

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

Bruke en egenskap eller metode på flere former samtidig

I brukergrensesnittet er det noen operasjoner du kan utføre med flere former valgt; for eksempel kan du velge flere former og angi alle deres individuelle fyll samtidig. Det er andre operasjoner du bare kan utføre med en enkelt form valgt; for eksempel kan du bare redigere teksten i en figur hvis en enkelt figur er valgt.

I Visual Basic er det to måter å bruke egenskaper og metoder på et sett med former. Disse to måtene lar deg utføre en hvilken som helst operasjon du kan utføre på en enkelt figur på en rekke former, enten du kan utføre den samme operasjonen i brukergrensesnittet eller ikke.

  • Hvis operasjonen fungerer på flere utvalgte former i brukergrensesnittet, kan du utføre den samme operasjonen i Visual Basic ved å konstruere en  ShapeRange-  samling som inneholder figurene du vil jobbe med, og bruke de riktige egenskapene og metodene direkte på  ShapeRange  -samlingen.

  • Hvis operasjonen ikke fungerer på flere valgte former i brukergrensesnittet, kan du fortsatt utføre operasjonen i Visual Basic ved å gå gjennom  Shapes  -samlingen eller gjennom en  ShapeRange-  samling som inneholder figurene du vil jobbe med, og bruke de riktige egenskapene og metoder til de enkelte  Shape-  objektene i samlingen.

Mange egenskaper og metoder som gjelder for  Shape-  objektet og  ShapeRange-  samlingen mislykkes hvis de brukes på visse typer former. For eksempel  mislykkes egenskapen TextFrame  hvis den brukes på en figur som ikke kan inneholde tekst. Hvis du ikke er sikker på at hver form i en  ShapeRange-  samling kan ha en bestemt egenskap eller metode brukt på seg, ikke bruk egenskapen eller metoden på  ShapeRange-  samlingen. Hvis du vil bruke en av disse egenskapene eller metodene på en samling av figurer, må du gå gjennom samlingen og teste hver enkelt form for å sikre at det er en passende type form før du bruker egenskapen eller metoden på den.

Bruk av en egenskap eller metode på en ShapeRange-samling

Hvis du kan utføre en operasjon på flere utvalgte former i brukergrensesnittet samtidig, kan du gjøre den programmatiske ekvivalenten ved å konstruere en  ShapeRange-  samling og deretter bruke de riktige egenskapene eller metodene på den. Følgende eksempel konstruerer et formområde som inneholder autoformene kalt "Big Star" og "Little Star" på og bruker en gradientfyll på dem og bruker en gradientfyll på dem.myDocument

VB

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

Følgende er generelle retningslinjer for hvordan egenskaper og metoder oppfører seg når de brukes på en  ShapeRange  -samling.

  • Å bruke en metode på samlingen tilsvarer å bruke metoden på hvert enkelt  Shape-  objekt i den samlingen.

  • Å angi verdien til en egenskap i samlingen tilsvarer å sette verdien på egenskapen til hver enkelt form i det området.

  • En egenskap i samlingen som returnerer en konstant, returnerer verdien av egenskapen for en individuell form i samlingen hvis alle former i samlingen har samme verdi for den egenskapen. Hvis ikke alle figurene i samlingen har samme verdi for egenskapen, returnerer den "blandet" konstanten.

  • En egenskap for samlingen som returnerer en enkel datatype (som  Long ,  Single eller  String ) returnerer verdien av egenskapen for en individuell form hvis alle figurene i samlingen har samme verdi for den egenskapen.

  • Verdien av enkelte egenskaper kan returneres eller angis bare hvis det er nøyaktig én form i samlingen. Hvis det er mer enn én figur i samlingen, oppstår det en kjøretidsfeil. Dette er vanligvis tilfellet for å returnere eller angi egenskaper når tilsvarende handling i brukergrensesnittet bare er mulig med en enkelt form (handlinger som å redigere tekst i en figur eller redigere punktene i en friform).

De foregående retningslinjene gjelder også når du angir egenskaper for figurer som er gruppert under sekundære objekter i  ShapeRange  -samlingen, for eksempel  FillFormat  -objektet. Hvis det sekundære objektet representerer operasjoner som kan utføres på flere valgte objekter i brukergrensesnittet, vil du kunne returnere objektet fra en  ShapeRange-  samling og angi dets egenskaper. Du kan for eksempel bruke  Fill-  egenskapen til å returnere  FillFormat-  objektet som representerer fyllene til alle figurene i  ShapeRange-  samlingen. Ved å angi egenskapene til dette  FillFormat-  objektet vil de samme egenskapene angis for alle de individuelle figurene i  ShapeRange-  samlingen.

Sløyfe gjennom en Shapes- eller ShapeRange-samling

Selv om du ikke kan utføre en operasjon på flere former i brukergrensesnittet samtidig ved å velge dem og deretter bruke en kommando, kan du utføre tilsvarende handling programmatisk ved å gå gjennom Shapes-  samlingen  eller gjennom en  ShapeRange-  samling som inneholder figurene du ønsker å jobbe med, og anvende de riktige egenskapene og metodene på de enkelte  Shape  -objektene i samlingen. Følgende eksempel går gjennom alle figurene på og legger til tekst til hver figur som er en AutoShape. og legger til tekst til hver figur som er en autofigur.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

Følgende eksempel konstruerer  ShapeRange-  samlingen som inneholder alle de valgte figurene i det aktive vinduet og setter teksten i hver figur i samlingen som kan inneholde tekst.

VB

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

Justere, distribuere og gruppere former i et formområde

Bruk  metodene Juster  og  distribuer  for å plassere et sett med figurer i forhold til hverandre eller i forhold til dokumentet som inneholder dem. Bruk  gruppemetoden  eller  omgrupperingsmetoden  for å danne en enkelt gruppert form fra et sett med figurer.

Legg igjen en kommentar

PowerPoint-mal for årsrapport for ideelle organisasjoner: Gratis nedlastingsalternativer og sjekkliste for lysbilder

PowerPoint-mal for årsrapport for ideelle organisasjoner: Gratis nedlastingsalternativer og sjekkliste for lysbilder

Lag en tydelig årsrapport for ideelle organisasjoner i PowerPoint med en gratis mal, praktisk lysbildestruktur, effektmålinger, økonomi og presentasjonstips klare for givere.

PowerPoint-mal for minimalistisk investorpresentasjon for teknologioppstartsbedrifter: Hva du bør inkludere og hva du bør utelate

PowerPoint-mal for minimalistisk investorpresentasjon for teknologioppstartsbedrifter: Hva du bør inkludere og hva du bør utelate

Lag en pitch-presentasjon for investorer i oppstartsbransjen for ren teknologi i PowerPoint med praktisk lysbildestruktur, evidensorientert budskap, tilgjengelig design og færre distraksjoner.

Enkel mal for oppgavedelegeringsmatrise for Word: En praktisk versjon for små teamledere

Enkel mal for oppgavedelegeringsmatrise for Word: En praktisk versjon for små teamledere

Bruk denne enkle malen for oppgavedelegeringsmatrise i Word for å tilordne eiere, beslutningsgrenser, tidsfrister og kontrollpunkter uten å komplisere et lite team.

Enkel mal for oppmøteskjema for barnehage: Utskrivbar påmelding og avmelding for hjemmebarnepass

Enkel mal for oppmøteskjema for barnehage: Utskrivbar påmelding og avmelding for hjemmebarnepass

Bruk dette enkle utskrivbare oppmøteskjemaet for barnehagepass hjemme, med barnenavn, ankomst-/avreisetider, signaturer og tips om samsvar.

Utskrivbar én-siders markedsføringsstrategimal for lokale bedrifter

Utskrivbar én-siders markedsføringsstrategimal for lokale bedrifter

Bruk denne utskrivbare malen for markedsføringsstrategi på én side til å definere din lokale målgruppe, tilbud, kanaler, budsjett, ukentlige handlinger og målbare mål.

Slik stopper du Excel fra å automatisk endre tall til datoer

Slik stopper du Excel fra å automatisk endre tall til datoer

Stopp Excel fra å konvertere verdier som 1/2, 11-53 eller JAN1 til datoer. Lær pålitelige løsninger for skriving, liming, CSV-import og allerede konverterte celler.

Modern Real Estate Listing Presentation PowerPoint Template (Free): What to Include

Modern Real Estate Listing Presentation PowerPoint Template (Free): What to Include

Build a polished real estate listing PowerPoint for free with a practical slide plan, photo, branding, accessibility, compliance, and export tips.

Slik løser du feilen der Outlook ikke kan sende e-post, men kan motta

Slik løser du feilen der Outlook ikke kan sende e-post, men kan motta

Løs Outlook-problemer der du kan motta e-post, men ikke sende. Sjekk Utkast, frakoblet modus, pålogging, SMTP-innstillinger, profiler og endringer i Microsoft 365.

Enkel to-ukers lønnstracker i Excel for små team: En praktisk oppsettguide

Enkel to-ukers lønnstracker i Excel for små team: En praktisk oppsettguide

Bygg en enkel to-ukers lønnstracker i Excel for et lite team, med timer, lønn, fratrekk, gjennomgangsmarkeringer, oppsummeringer og retningslinjer for journalføring.

Utskrivbar sjekkliste for arrangementsplanlegging og budsjettmal for Word: Hva du skal inkludere og når du skal bruke Excel i stedet

Utskrivbar sjekkliste for arrangementsplanlegging og budsjettmal for Word: Hva du skal inkludere og når du skal bruke Excel i stedet

Lag eller tilpass en utskrivbar sjekkliste og budsjettmal for arrangementsplanlegging i Microsoft Word, med praktiske deler, avveininger og tips for Word kontra Excel.