Hvordan opretter og indsætter man former i PowerPoint med VBA?

For et par dage siden ønskede jeg at automatisere den temmelig verdslige opgave med at skabe nogle PowerPoint-dias. Når du automatiserer PowerPoint, arbejder du typisk med Slides and Shapes-samlingen. Slides er ret selvforklarende, og former er stort set alt andet, inklusive tekstbokse, handlingsknapper, medieobjekter, etiketter, billeder, billedforklaringer, flowcharts og så videre og så videre. Selvom jeg vil fremvise teknikkerne med PowerPoint, er noget af syntaksen faktisk ret anvendeligt til Microsoft Word og Excel.

Bare for at opsummere, før du går i gang med VBA-makroudvikling i PowerPoint, skal du have din udviklingsfane aktiveret .

Først og fremmest, lad os starte med automatisk at oprette en præsentation med nogle slides som vist i denne vejledning: oprette en præsentation i VBA .

Nu kan vi begynde at arbejde med Shapes. Først og fremmest, lad os gå videre og åbne VBA Editor ved at trykke på Alt+ F11. Hvis du fulgte den forrige vejledning, skulle du have modul 1 på din Moduler-liste (som vist nedenfor)

Arbejde med former med VBA

Tilføjelse af en tekstboks med VBA

Vi starter med at tilføje en lodret tekstboks til vores første dias i præsentationen. Tilføj følgende kode til Module1, fortsæt og tryk på knappen Gem (Ctrl+s) og kør din makro (tryk F5 eller tryk Kør under-/brugerformular).

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

Bemærk, at du ret nemt kan ændre størrelsen på dine tekstboksdimensioner med VBA. I dette tilfælde ændrer vi størrelsen på den første form i det andet dias, du er velkommen til at ændre efter 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

Lad os nu antage, at vi ønsker at tilføje en tekstboks til alle dias i præsentationen, denne gang en smule mere visuelt tiltalende. For at gøre det bruger vi VBA til at skabe brugerdefinerede teksteffekter, som vi er i stand til at integrere i et eller flere dias i præsentationen. Vi går først gennem præsentationsdiasene og tilføjer derefter teksteffekten efter 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 opretter og indsætter man former i PowerPoint med VBA?

Bemærk, at du lige så godt kan bruge et simpelt vandmærke til at opnå dette specifikke resultat.

PowerPoint-forklaringer med VBA

Vores næste eksempel vil være at tilføje infoudvidelser til din præsentation. I dette eksempel tilføjer vi en billedforklaring til det andet dias.

Sub CreateCallout()

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

End Sub

Indstilling af egenskaber for en form

Mange formateringsegenskaber for figurer er ikke angivet af egenskaber, der gælder direkte for  Shape-  eller  ShapeRange-  objektet. I stedet er relaterede formattributter grupperet under sekundære objekter, såsom  FillFormat-  objektet, som indeholder alle de egenskaber, der relaterer til figurens fyld, eller  LinkFormat  -objektet, som indeholder alle de egenskaber, der er unikke for sammenkædede OLE-objekter. For at angive egenskaber for en form skal du først returnere det objekt, der repræsenterer sættet af relaterede formattributter, og derefter angive egenskaber for det returnerede objekt. For eksempel bruger du  Fill-  egenskaben til at returnere  FillFormat-  objektet, og derefter indstiller du  ForeColor -  egenskaben for  FillFormat-  objektet til at indstille fyld-forgrundsfarven for den angivne form, som vist i følgende eksempel.

VB

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

Anvendelse af en egenskab eller metode til flere former på samme tid

I brugergrænsefladen er der nogle handlinger, du kan udføre med flere former valgt; for eksempel kan du vælge flere former og indstille alle deres individuelle fyld på én gang. Der er andre handlinger, du kun kan udføre med en enkelt form valgt; for eksempel kan du kun redigere teksten i en figur, hvis en enkelt figur er valgt.

I Visual Basic er der to måder at anvende egenskaber og metoder på et sæt former. Disse to måder giver dig mulighed for at udføre enhver handling, som du kan udføre på en enkelt figur på en række former, uanset om du kan udføre den samme handling i brugergrænsefladen eller ej.

  • Hvis handlingen virker på flere udvalgte former i brugergrænsefladen, kan du udføre den samme handling i Visual Basic ved at konstruere en  ShapeRange-  samling, der indeholder de figurer, du vil arbejde med, og anvende de relevante egenskaber og metoder direkte til  ShapeRange  -samlingen.

  • Hvis handlingen ikke virker på flere udvalgte former i brugergrænsefladen, kan du stadig udføre handlingen i Visual Basic ved at gå gennem Shapes-  samlingen  eller gennem en  ShapeRange-  samling, der indeholder de figurer, du vil arbejde med, og anvende de relevante egenskaber og metoder til de enkelte  Shape-  objekter i samlingen.

Mange egenskaber og metoder, der gælder for  Shape-  objektet og  ShapeRange-  samlingen, mislykkes, hvis de anvendes på visse former for former. For eksempel  fejler egenskaben TextFrame  , hvis den anvendes på en figur, der ikke kan indeholde tekst. Hvis du ikke er sikker på, at hver form i en  ShapeRange-  samling kan have en bestemt egenskab eller metode anvendt på sig, skal du ikke anvende egenskaben eller metoden på  ShapeRange-  samlingen. Hvis du vil anvende en af ​​disse egenskaber eller metoder på en samling af figurer, skal du gå gennem samlingen og teste hver enkelt form for at sikre, at det er en passende formtype, før du anvender egenskaben eller metoden på den.

Anvendelse af en egenskab eller metode til en ShapeRange-samling

Hvis du kan udføre en operation på flere udvalgte figurer i brugergrænsefladen på samme tid, kan du udføre den programmatiske ækvivalent ved at konstruere en  ShapeRange-  samling og derefter anvende de relevante egenskaber eller metoder til den. Følgende eksempel konstruerer et formområde, der indeholder autofigurerne kaldet "Big Star" og "Little Star" på og anvender et gradueringsfyld på dem og anvender et gradientfyld 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

Det følgende er generelle retningslinjer for, hvordan egenskaber og metoder opfører sig, når de anvendes på en  ShapeRange-  samling.

  • At anvende en metode på samlingen svarer til at anvende metoden på hvert enkelt  Shape-  objekt i den pågældende samling.

  • Indstilling af værdien af ​​en egenskab i samlingen svarer til at indstille værdien af ​​egenskaben for hver individuel form i dette område.

  • En egenskab i samlingen, der returnerer en konstant, returnerer værdien af ​​egenskaben for en individuel form i samlingen, hvis alle figurer i samlingen har samme værdi for den pågældende egenskab. Hvis ikke alle figurer i samlingen har samme værdi for egenskaben, returnerer den den "blandede" konstant.

  • En egenskab for samlingen, der returnerer en simpel datatype (såsom  LongSingle eller  String ), returnerer værdien af ​​egenskaben for en individuel form, hvis alle figurer i samlingen har den samme værdi for den pågældende egenskab.

  • Værdien af ​​nogle egenskaber kan kun returneres eller indstilles, hvis der er nøjagtig én form i samlingen. Hvis der er mere end én figur i samlingen, opstår der en køretidsfejl. Dette er generelt tilfældet for returnering eller indstilling af egenskaber, når den tilsvarende handling i brugergrænsefladen kun er mulig med en enkelt form (handlinger som f.eks. redigering af tekst i en form eller redigering af punkterne i en friform).

De foregående retningslinjer gælder også, når du angiver egenskaber for figurer, der er grupperet under sekundære objekter i  ShapeRange  -samlingen, såsom  FillFormat-  objektet. Hvis det sekundære objekt repræsenterer operationer, der kan udføres på flere udvalgte objekter i brugergrænsefladen, vil du være i stand til at returnere objektet fra en  ShapeRange-  samling og indstille dets egenskaber. Du kan f.eks. bruge  Fill-  egenskaben til at returnere  FillFormat-  objektet, der repræsenterer fyld i alle figurerne i  ShapeRange-  samlingen. Indstilling af egenskaberne for dette  FillFormat-  objekt vil angive de samme egenskaber for alle de individuelle former i  ShapeRange-  samlingen.

Sløjfe gennem en Shapes- eller ShapeRange-samling

Selvom du ikke kan udføre en handling på flere figurer i brugergrænsefladen på samme tid ved at vælge dem og derefter bruge en kommando, kan du udføre den tilsvarende handling programmatisk ved at gå gennem Shapes-  samlingen  eller gennem en  ShapeRange-  samling, der indeholder de figurer, du ønsker at arbejde med og anvende passende egenskaber og metoder til de enkelte  Shape-  objekter i samlingen. Følgende eksempel gennemgår alle figurerne på og tilføjer tekst til hver figur, der er en autofigur. og tilføjer tekst til hver figur, der 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-  samling, der indeholder alle de aktuelt valgte figurer i det aktive vindue, og angiver teksten i hver figur i samlingen, der kan indeholde tekst.

VB

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

Justering, fordeling og gruppering af figurer i et formområde

Brug  metoderne Juster  og  distribuer  til at placere et sæt figurer i forhold til hinanden eller i forhold til det dokument, der indeholder dem. Brug  gruppemetoden  eller  omgrupperingsmetoden  til at danne en enkelt grupperet form ud fra et sæt figurer.

Leave a Comment

Sådan slår du undertekster til på Zoom

Sådan slår du undertekster til på Zoom

Lær hvordan du slår undertekster til på Zoom. Zooms automatiske undertekster gør det lettere at forstå opkaldsindholdet.

[100% løst] Hvordan rettes meddelelsen Fejludskrivning på Windows 10?

[100% løst] Hvordan rettes meddelelsen Fejludskrivning på Windows 10?

Modtager fejludskrivningsmeddelelse på dit Windows 10-system, følg derefter rettelserne i artiklen og få din printer på sporet...

Sådan optages og afspilles en Microsoft Teams-optagelse

Sådan optages og afspilles en Microsoft Teams-optagelse

Du kan nemt besøge dine møder igen, hvis du optager dem. Sådan optager og afspiller du en Microsoft Teams-optagelse til dit næste møde.

Sådan nulstiller du standardapps på Android

Sådan nulstiller du standardapps på Android

Når du åbner en fil eller klikker på et link, vil din Android-enhed vælge en standardapp til at åbne den. Du kan nulstille dine standardapps på Android med denne vejledning.

RETTET: Entitlement.diagnostics.office.com certifikatfejl

RETTET: Entitlement.diagnostics.office.com certifikatfejl

RETTET: Entitlement.diagnostics.office.com certifikatfejl

Top 10 spilwebsteder, der ikke er blokeret af skolen i 2022

Top 10 spilwebsteder, der ikke er blokeret af skolen i 2022

For at finde ud af de bedste spilsider, der ikke er blokeret af skoler, skal du læse artiklen og vælge den bedste ikke-blokerede spilwebsted for skoler, gymnasier og værker

RETTET: Printer i fejltilstand [HP, Canon, Epson, Zebra & Brother]

RETTET: Printer i fejltilstand [HP, Canon, Epson, Zebra & Brother]

Hvis du står over for printeren i fejltilstandsproblemet på Windows 10-pc og ikke ved, hvordan du skal håndtere det, så følg disse løsninger for at løse det.

Sådan sikkerhedskopierer du din Chromebook (2022)

Sådan sikkerhedskopierer du din Chromebook (2022)

Hvis du undrede dig over, hvordan du sikkerhedskopierer din Chromebook, har vi dækket dig. Lær mere om, hvad der sikkerhedskopieres automatisk, og hvad der ikke er her

Sådan rettes Xbox-appen vil ikke åbne i Windows 10 [HURTIG GUIDE]

Sådan rettes Xbox-appen vil ikke åbne i Windows 10 [HURTIG GUIDE]

Vil du rette Xbox-appen vil ikke åbne i Windows 10, så følg rettelserne som Aktiver Xbox-appen fra Tjenester, nulstil Xbox-appen, Nulstil Xbox-apppakken og andre..

Hvad er LogiOptions.exe (UNICODE), og er processen sikker?

Hvad er LogiOptions.exe (UNICODE), og er processen sikker?

Hvis du har et Logitech-tastatur og -mus, vil du se denne proces køre. Det er ikke malware, men det er ikke en vigtig eksekverbar fil til Windows OS.