Kuinka luoda ja lisätä muotoja PowerPointiin VBA:lla?

Pari päivää sitten halusin automatisoida melko arkipäiväisen tehtävän luoda PowerPoint-dioja. Kun automatisoit PowerPointia, työskentelet yleensä Slides and Shapes -kokoelman kanssa. Slides on melko itsestään selvä, ja muodot ovat melkein kaikkea muuta, mukaan lukien tekstilaatikot, toimintapainikkeet, mediaobjektit, tarrat, kuvat, huomiotekstit, vuokaaviot ja niin edelleen ja niin edelleen. Vaikka aion esitellä tekniikat PowerPointilla, osa syntaksista on itse asiassa melko sovellettavissa Microsoft Wordiin ja Exceliin.

Kertauksena totean, että ennen kuin aloitat VBA-makrokehityksen PowerPointissa, sinun on otettava kehitysvälilehti käyttöön .

Aloitetaan luomalla automaattisesti esitys joissakin dioissa, kuten tässä opetusohjelmassa näytetään: esityksen luominen VBA :ssa .

Nyt voimme alkaa työskennellä Shapesin kanssa. Ensinnäkin, mennään eteenpäin ja avataan VBA-editori painamalla Alt+ F11. Jos noudatit edellistä opetusohjelmaa, moduulin 1 pitäisi olla moduuliluettelossasi (kuten alla näkyy)

Työskentely muotojen kanssa VBA:lla

Tekstilaatikon lisääminen VBA:lla

Aloitamme lisäämällä pystysuoran tekstikentän esityksen ensimmäiseen diaan. Lisää seuraava koodi Module1:een, siirry sitten eteenpäin ja paina Tallenna-painiketta (Ctrl+s) ja Suorita makro (paina F5 tai paina Suorita ali-/käyttäjälomake).

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

Huomaa, että voit muuttaa tekstilaatikon kokoa melko helposti VBA: lla. Tässä tapauksessa muutamme ensimmäisen muodon kokoa toisessa diassa, voit muokata sitä tarvittaessa.

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

Tekstitehosteet VBA:lla

Oletetaan nyt, että haluamme lisätä tekstilaatikon kaikkiin esityksen dioihin, tällä kertaa hieman visuaalisesti houkuttelevammin. Tätä varten luomme VBA:n avulla mukautettuja tekstitehosteita, jotka voimme upottaa esityksen yhteen tai useampaan diaan. Käymme ensin läpi esitysdiat ja lisäämme sitten tekstitehosteen tarpeen mukaan.

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

Tässä tulos ;-):

Kuinka luoda ja lisätä muotoja PowerPointiin VBA:lla?

Huomaa, että voit yhtä hyvin käyttää yksinkertaista vesileimaa saavuttaaksesi tämän tietyn tuloksen.

PowerPoint-huomiotekstit VBA:lla

Seuraava esimerkkimme on huomiotekstien lisääminen esitykseen. Tässä esimerkissä lisäämme huomiotekstin toiseen diaan.

Sub CreateCallout()

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

End Sub

Muodon ominaisuuksien asettaminen

Monia muotojen muotoiluominaisuuksia ei määritetä ominaisuuksilla, jotka koskevat suoraan  Shape-  tai  ShapeRange  -objektia. Sen sijaan liittyvät muotoattribuutit ryhmitellään toissijaisiin objekteihin, kuten  FillFormat-  objektiin, joka sisältää kaikki muodon täyttöön liittyvät ominaisuudet, tai  LinkFormat  -objektiin, joka sisältää kaikki linkitetyille OLE-objekteille ainutlaatuiset ominaisuudet. Jos haluat määrittää muodon ominaisuudet, sinun on ensin palautettava objekti, joka edustaa toisiinsa liittyvien muotomääritteiden joukkoa, ja asetettava sitten palautetun objektin ominaisuudet. Käytät esimerkiksi  Fill-  ominaisuutta palauttamaan  FillFormat-  objektin ja asetat sitten  FillFormat- objektin ForeColor-  ominaisuuden   määrittämään täyttöetualan värin määritetylle muodolle seuraavan esimerkin mukaisesti.

VB

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

Ominaisuuden tai menetelmän soveltaminen useisiin muotoihin samanaikaisesti

Käyttöliittymässä on joitain toimintoja, joita voit suorittaa useilla valituilla muodoilla; Voit esimerkiksi valita useita muotoja ja määrittää niiden kaikki yksittäiset täytteet kerralla. On muitakin toimintoja, joita voit suorittaa vain yhdellä valitulla muodolla; Voit esimerkiksi muokata muodon tekstiä vain, jos yksi muoto on valittuna.

Visual Basicissa on kaksi tapaa soveltaa ominaisuuksia ja menetelmiä joukkoon muotoja. Näillä kahdella tavalla voit suorittaa minkä tahansa toiminnon, jonka voit suorittaa yhdelle muodolle useille muodoille, riippumatta siitä, voitko suorittaa saman toiminnon käyttöliittymässä vai et.

  • Jos toiminto toimii useille valituille muodoille käyttöliittymässä, voit suorittaa saman toiminnon Visual Basicissa rakentamalla  ShapeRange-  kokoelman, joka sisältää muodot, joita haluat työstää, ja ottamalla asianmukaiset ominaisuudet ja menetelmät suoraan ShapeRange-  kokoelmaan  .

  • Jos toiminto ei toimi useille valituille muodoille käyttöliittymässä, voit silti suorittaa toiminnon Visual Basicissa selaamalla läpi Shape-  kokoelman  tai  ShapeRange-  kokoelman, joka sisältää muodot, joita haluat työstää, ja käyttämällä asianmukaisia ​​ominaisuuksia. ja menetelmät  kokoelman yksittäisiin  Shape- objekteihin.

Monet Shape-  objektia ja  ShapeRange- kokoelmaa koskevat ominaisuudet ja menetelmät   epäonnistuvat, jos niitä käytetään tietyntyyppisiin muotoihin. Esimerkiksi  TextFrame  -ominaisuus epäonnistuu, jos sitä käytetään muotoon, joka ei voi sisältää tekstiä. Jos et ole varma, että jokaiseen  ShapeRange-  kokoelman muotoon voidaan soveltaa tiettyä ominaisuutta tai menetelmää, älä käytä ominaisuutta tai menetelmää ShapeRange-  kokoelmassa  . Jos haluat käyttää jotakin näistä ominaisuuksista tai menetelmistä muotokokoelmassa, sinun on selattava kokoelmaa ja testattava jokainen yksittäinen muoto varmistaaksesi, että se on sopiva muoto, ennen kuin käytät ominaisuutta tai menetelmää siihen.

Ominaisuuden tai menetelmän käyttäminen ShapeRange-kokoelmaan

Jos voit suorittaa toiminnon useille valituille muodoille käyttöliittymässä samanaikaisesti, voit tehdä ohjelmallisen vastineen rakentamalla  ShapeRange-  kokoelman ja soveltamalla siihen sopivia ominaisuuksia tai menetelmiä. Seuraava esimerkki muodostaa muotoalueen, joka sisältää "Big Star"- ja "Little Star"-nimiset automaattiset muodot, ja lisää niihin gradienttitäytön ja liukuväritäytön.myDocument

VB

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

Seuraavat ovat yleisiä ohjeita ominaisuuksien ja menetelmien käyttäytymisestä, kun niitä sovelletaan  ShapeRange-  kokoelmaan.

  • Metodin käyttäminen kokoelmaan vastaa menetelmän käyttämistä jokaiseen yksittäiseen  Shape-  objektiin kokoelmassa.

  • Kokoelman ominaisuuden arvon asettaminen vastaa kunkin yksittäisen muodon ominaisuuden arvon asettamista kyseisellä alueella.

  • Kokoelman ominaisuus, joka palauttaa vakion, palauttaa ominaisuuden arvon kokoelman yksittäiselle muodolle, jos kaikilla kokoelman muodoilla on sama arvo kyseiselle ominaisuudelle. Jos kaikilla kokoelman muodoilla ei ole samaa arvoa ominaisuudelle, se palauttaa "sekoitetun" vakion.

  • Kokoelman ominaisuus, joka palauttaa yksinkertaisen tietotyypin (kuten  Long ,  Single tai  String ), palauttaa ominaisuuden arvon yksittäiselle muodolle, jos kaikilla kokoelman muodoilla on sama arvo tälle ominaisuudelle.

  • Joidenkin ominaisuuksien arvo voidaan palauttaa tai asettaa vain, jos kokoelmassa on täsmälleen yksi muoto. Jos kokoelmassa on useampi kuin yksi muoto, tapahtuu ajonaikainen virhe. Tämä pätee yleensä ominaisuuksien palauttamiseen tai asettamiseen, kun vastaava toiminta käyttöliittymässä on mahdollista vain yhdellä muodolla (toiminnot, kuten tekstin muokkaaminen muodossa tai vapaan muodon pisteiden muokkaaminen).

Edelliset ohjeet pätevät myös, kun määrität muotojen ominaisuuksia, jotka on ryhmitelty  ShapeRange-  kokoelman toissijaisiin objekteihin, kuten  FillFormat  -objektiin. Jos toissijainen objekti edustaa toimintoja, jotka voidaan suorittaa useille valituille objekteille käyttöliittymässä, voit palauttaa objektin  ShapeRange-  kokoelmasta ja määrittää sen ominaisuudet. Voit esimerkiksi käyttää  Fill-  ominaisuutta palauttaaksesi  FillFormat- objektin, joka edustaa kaikkien ShapeRange-  kokoelman muotojen täyttöjä   . Tämän FillFormat- objektin ominaisuuksien asettaminen   asettaa samat ominaisuudet kaikille  ShapeRange-  kokoelman yksittäisille muodoille.

Shape- tai ShapeRange-kokoelman läpi kiertäminen

Vaikka et pystyisi suorittamaan toimintoa useille muodoille samanaikaisesti käyttöliittymässä valitsemalla ne ja sitten komennolla, voit suorittaa vastaavan toiminnon ohjelmallisesti selaamalla Muodot-  kokoelmaa  tai  ShapeRange  -kokoelmaa, joka sisältää haluamasi muodot. haluat työskennellä ja soveltaa sopivia ominaisuuksia ja menetelmiä   kokoelman yksittäisiin Shape- objekteihin. Seuraava esimerkki käy läpi kaikki muodot ja lisää tekstiä jokaiseen muotoon, joka on automaattinen muoto. ja lisää tekstiä jokaiseen muotoon, joka on automaattinen muoto.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

Seuraava esimerkki muodostaa  ShapeRange-  kokoelman, joka sisältää kaikki aktiivisessa ikkunassa valitut muodot ja asettaa tekstin jokaiseen kokoelman muotoon, joka voi sisältää tekstiä.

VB

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

Tasaa, jakaa ja ryhmitellä muotoja muotoalueella

Käytä  Tasaa  ja  jaa  -menetelmiä asettaaksesi joukko muotoja suhteessa toisiinsa tai suhteessa ne sisältävään asiakirjaan. Käytä  Ryhmittele-  tai  Ryhmittele uudelleen  -menetelmää muodostaaksesi yksittäisen ryhmitellyn muodon joukosta muotoja.

Jätä kommentti

Voittoa tavoittelemattoman organisaation vuosikertomuksen PowerPoint-malli: Ilmaiset latausvaihtoehdot ja dialuettelo

Voittoa tavoittelemattoman organisaation vuosikertomuksen PowerPoint-malli: Ilmaiset latausvaihtoehdot ja dialuettelo

Luo selkeä voittoa tavoittelemattoman organisaation vuosikertomus PowerPointissa ilmaisen mallin, käytännöllisen diarakenteen, vaikuttavuusmittareiden, taloustietojen ja lahjoittajille tarkoitettujen esitysvinkkien avulla.

Minimalistinen sijoittajapuheen PowerPoint-malli teknologia-alan startup-yrityksille: Mitä sisällyttää ja mitä jättää pois

Minimalistinen sijoittajapuheen PowerPoint-malli teknologia-alan startup-yrityksille: Mitä sisällyttää ja mitä jättää pois

Rakenna clean tech -alan startup-sijoittajan pitch-deck PowerPointilla käytännöllisellä diarakenteella, näyttöön perustuvalla viestinnällä, saavutettavalla suunnittelulla ja vähemmillä häiriötekijöillä.

Yksinkertainen tehtävien delegointimatriisimalli Wordille: Käytännönläheinen versio pienten tiimien esimiehille

Yksinkertainen tehtävien delegointimatriisimalli Wordille: Käytännönläheinen versio pienten tiimien esimiehille

Käytä tätä yksinkertaista tehtävien delegointimatriisimallia Wordissa omistajien, päätösrajojen, määräaikojen ja tarkistuspisteiden määrittämiseen ilman, että pienen tiimin työstä tulee liian monimutkaista.

Yksinkertainen päivähoidon läsnäololomakkeen malli: Tulostettava kirjautuminen sisään ja ulos kotihoitoon

Yksinkertainen päivähoidon läsnäololomakkeen malli: Tulostettava kirjautuminen sisään ja ulos kotihoitoon

Käytä tätä yksinkertaista tulostettavaa päivähoidon läsnäololomaketta kotihoitoon. Lomakkeeseen tulee lasten nimet, saapumis- ja lähtöajat, allekirjoitukset ja vinkkejä sääntöjen noudattamiseen.

Tulostettava yhden sivun markkinointistrategiamalli paikallisille yrityksille

Tulostettava yhden sivun markkinointistrategiamalli paikallisille yrityksille

Käytä tätä tulostettavaa yksisivuista markkinointistrategiapohjaa määrittääksesi paikallisen yleisösi, tarjonnan, kanavat, budjetin, viikoittaiset toimenpiteet ja mitattavissa olevat tavoitteet.

Kuinka estää Exceliä muuttamasta numeroita automaattisesti päivämääriksi

Kuinka estää Exceliä muuttamasta numeroita automaattisesti päivämääriksi

Estä Exceliä muuntamasta arvoja, kuten 1/2, 11-53 tai JAN1, päivämääriksi. Opi luotettavia korjauksia kirjoittamiseen, liittämiseen, CSV-tuontiin ja jo muunnettujen solujen käyttöön.

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.

Näin korjaat Outlookin virheen: sähköpostia voi vastaanottaa, mutta ei lähettää

Näin korjaat Outlookin virheen: sähköpostia voi vastaanottaa, mutta ei lähettää

Korjaa Outlook, kun sähköpostia voi vastaanottaa mutta ei lähettää. Tarkista Lähtevät, offline-tila, kirjautuminen, SMTP-asetukset, profiilit ja Microsoft 365 -muutokset.

Yksinkertainen kahden viikon välein tapahtuvan palkanmaksun Excel-seurantamalli pienille tiimeille: käytännön asennusopas

Yksinkertainen kahden viikon välein tapahtuvan palkanmaksun Excel-seurantamalli pienille tiimeille: käytännön asennusopas

Rakenna yksinkertainen kahden viikon välein tapahtuva palkanmaksuseurantamalli Exceliin pienelle tiimille, mukaan lukien tunnit, palkat, vähennykset, tarkistusliput, yhteenvedot ja kirjanpito-ohjeet.

Tulostettava tapahtumasuunnittelun tarkistuslista ja budjettimalli Wordiin: Mitä sisällyttää ja milloin käyttää Exceliä

Tulostettava tapahtumasuunnittelun tarkistuslista ja budjettimalli Wordiin: Mitä sisällyttää ja milloin käyttää Exceliä

Luo tai mukauta tulostettava tapahtumasuunnittelun tarkistuslista ja budjettimalli Microsoft Wordissa, joka sisältää käytännön osioita, kompromisseja ja vinkkejä Wordin ja Excelin vertailuun.