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  LongSingle 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.


[100% løst] Hvordan fikser du Feilutskrift-melding på Windows 10?

[100% løst] Hvordan fikser du Feilutskrift-melding på Windows 10?

Mottar feilmelding om utskrift på Windows 10-systemet ditt, følg deretter rettelsene gitt i artikkelen og få skriveren din på rett spor...

Hvordan ta opp og spille av et Microsoft Teams-opptak

Hvordan ta opp og spille av et Microsoft Teams-opptak

Du kan enkelt besøke møtene dine igjen hvis du tar dem opp. Slik tar du opp og spiller av et Microsoft Teams-opptak for ditt neste møte.

Slik tilbakestiller du standardapper på Android

Slik tilbakestiller du standardapper på Android

Når du åpner en fil eller klikker på en kobling, vil Android-enheten velge en standardapp for å åpne den. Du kan tilbakestille standardappene dine på Android med denne veiledningen.

RETTET: Entitlement.diagnostics.office.com sertifikatfeil

RETTET: Entitlement.diagnostics.office.com sertifikatfeil

RETTET: Entitlement.diagnostics.office.com sertifikatfeil

Topp 10 spillnettsteder som ikke er blokkert av skolen i 2022

Topp 10 spillnettsteder som ikke er blokkert av skolen i 2022

For å finne ut de beste spillsidene som ikke er blokkert av skoler, les artikkelen og velg den beste ublokkerte spillnettsiden for skoler, høyskoler og arbeider

FIKSET: Skriver i feiltilstand [HP, Canon, Epson, Zebra og Brother]

FIKSET: Skriver i feiltilstand [HP, Canon, Epson, Zebra og Brother]

Hvis du står overfor skriveren i feiltilstand på Windows 10 PC og ikke vet hvordan du skal håndtere det, følg disse løsningene for å fikse det.

Slik sikkerhetskopierer du Chromebook (2022)

Slik sikkerhetskopierer du Chromebook (2022)

Hvis du lurer på hvordan du sikkerhetskopierer Chromebooken din, har vi dekket deg. Finn ut mer om hva som sikkerhetskopieres automatisk og hva som ikke er her

Slik fikser du Xbox-appen som ikke åpnes i Windows 10 [HURTIGVEILEDNING]

Slik fikser du Xbox-appen som ikke åpnes i Windows 10 [HURTIGVEILEDNING]

Vil du fikse Xbox-appen vil ikke åpne i Windows 10, følg deretter rettelsene som Aktiver Xbox-appen fra tjenester, tilbakestill Xbox-appen, Tilbakestill Xbox-apppakken og andre..

Hva er LogiOptions.exe (UNICODE) og er prosessen sikker?

Hva er LogiOptions.exe (UNICODE) og er prosessen sikker?

Hvis du har et Logitech-tastatur og -mus, vil du se at denne prosessen kjører. Det er ikke skadelig programvare, men det er ikke en viktig kjørbar fil for Windows OS.

Rettet Java Update/Install Error 1603 i Windows 10

Rettet Java Update/Install Error 1603 i Windows 10

Les artikkelen for å lære hvordan du fikser Java Update-feil 1603 i Windows 10, prøv rettelsene gitt en etter en og fiks feil 1603 enkelt ...