Ako vytvárať a vkladať tvary v PowerPointe s VBA?

Pred pár dňami som chcel zautomatizovať pomerne všednú úlohu vytvárania niekoľkých snímok programu PowerPoint. Pri automatizácii PowerPointu zvyčajne pracujete s kolekciou Snímky a tvary. Slides sú dosť samovysvetľujúce a tvary sú skoro všetko ostatné vrátane textových polí, tlačidiel akcií, mediálnych objektov, štítkov, obrázkov, popisov, vývojových diagramov a tak ďalej a tak ďalej. Aj keď budem prezentovať techniky s PowerPointom, niektoré zo syntaxe sú v skutočnosti celkom použiteľné pre Microsoft Word a Excel.

Aby sme to zhrnuli, skôr ako začnete s vývojom makier VBA v PowerPointe, musíte mať povolenú kartu Vývoj .

Po prvé, začnime automatickým vytvorením prezentácie s niekoľkými snímkami, ako je to znázornené v tomto návode: vytvorenie prezentácie vo VBA .

Teraz môžeme začať pracovať s tvarmi. Po prvé, poďme do toho a otvorte editor VBA stlačením Alt+ F11. Ak ste postupovali podľa predchádzajúceho návodu, mali by ste mať modul 1 v zozname modulov (ako je uvedené nižšie)

Práca s tvarmi s VBA

Pridanie textového poľa s VBA

Začneme pridaním zvislého textového poľa na našu prvú snímku v prezentácii. Pridajte nasledujúci kód do Module1, potom pokračujte a stlačte tlačidlo Uložiť (Ctrl+s) a spustite makro (stlačte F5 alebo stlačte Run 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

Všimnite si, že pomocou VBA môžete pomerne jednoducho zmeniť veľkosť textového poľa. V tomto prípade zmeníme veľkosť prvého tvaru na druhej snímke, môžete ho upraviť podľa potreby.

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

Textové efekty s VBA

Predpokladajme teraz, že na všetky snímky v prezentácii chceme pridať textové pole, tentoraz o niečo vizuálne príťažlivejšie. Na to použijeme VBA na vytvorenie vlastných textových efektov, ktoré dokážeme vložiť do jednej alebo viacerých snímok v prezentácii. Najprv prejdeme snímky prezentácie a potom podľa potreby pridáme textový efekt.

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

Tu je výsledok ;-)

Ako vytvárať a vkladať tvary v PowerPointe s VBA?

Všimnite si, že na dosiahnutie tohto konkrétneho výsledku môžete použiť aj jednoduchý vodoznak.

Popisky programu PowerPoint s VBA

Naším ďalším príkladom bude pridanie popisov do vašej prezentácie. V tomto príklade pridáme popisok na druhú snímku.

Sub CreateCallout()

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

End Sub

Nastavenie vlastností tvaru

Mnoho vlastností formátovania tvarov nie je nastavených vlastnosťami, ktoré sa vzťahujú priamo na  objekt Shape  alebo  ShapeRange  . Namiesto toho sú súvisiace atribúty tvaru zoskupené pod sekundárnymi objektmi, ako je napríklad  objekt FillFormat  , ktorý obsahuje všetky vlastnosti súvisiace s výplňou tvaru, alebo objekt  LinkFormat  , ktorý obsahuje všetky vlastnosti, ktoré sú jedinečné pre prepojené objekty OLE. Ak chcete nastaviť vlastnosti tvaru, musíte najprv vrátiť objekt, ktorý predstavuje množinu súvisiacich atribútov tvaru, a potom nastaviť vlastnosti tohto vráteného objektu. Napríklad použijete  vlastnosť Fill  na vrátenie  objektu FillFormat  a potom nastavíte  vlastnosť ForeColor  objektu  FillFormat  na nastavenie farby popredia výplne pre zadaný tvar, ako je znázornené v nasledujúcom príklade.

VB

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

Použitie vlastnosti alebo metódy na niekoľko tvarov súčasne

V používateľskom rozhraní je niekoľko operácií, ktoré môžete vykonať s niekoľkými vybranými tvarmi; môžete napríklad vybrať niekoľko tvarov a nastaviť všetky ich jednotlivé výplne naraz. Existujú aj ďalšie operácie, ktoré môžete vykonať len s jedným vybratým tvarom; text v tvare môžete napríklad upravovať len vtedy, ak je vybratý jeden tvar.

V jazyku Visual Basic existujú dva spôsoby, ako použiť vlastnosti a metódy na množinu tvarov. Tieto dva spôsoby vám umožňujú vykonávať akúkoľvek operáciu, ktorú môžete vykonať s jedným tvarom na škále tvarov, bez ohľadu na to, či môžete alebo nemôžete vykonať rovnakú operáciu v používateľskom rozhraní.

  • Ak operácia funguje na viacerých vybratých tvaroch v používateľskom rozhraní, rovnakú operáciu môžete vykonať v jazyku Visual Basic vytvorením  kolekcie ShapeRange  , ktorá obsahuje tvary, s ktorými chcete pracovať, a použitím príslušných vlastností a metód priamo na kolekciu  ShapeRange  .

  • Ak operácia nefunguje na viacerých vybratých tvaroch v používateľskom rozhraní, stále môžete operáciu vykonať v jazyku Visual Basic prejdením cez kolekciu  Shapes  alebo cez  kolekciu ShapeRange  , ktorá obsahuje tvary, s ktorými chcete pracovať, a použitím príslušných vlastností. a metódy k jednotlivým  objektom Shape  v kolekcii.

Mnoho vlastností a metód, ktoré sa aplikujú na  objekt Shape  a  kolekciu ShapeRange  , zlyhá, ak sa aplikujú na určité druhy tvarov. Napríklad  vlastnosť TextFrame  zlyhá, ak sa použije na tvar, ktorý nemôže obsahovať text. Ak si nie ste istí, že každý tvar v  kolekcii ShapeRange  môže mať aplikovanú určitú vlastnosť alebo metódu, neaplikujte túto vlastnosť alebo metódu na  kolekciu ShapeRange  . Ak chcete použiť jednu z týchto vlastností alebo metód na kolekciu tvarov, musíte prejsť cez kolekciu a otestovať každý jednotlivý tvar, aby ste sa uistili, že ide o vhodný typ tvaru, skôr než naň použijete vlastnosť alebo metódu.

Použitie vlastnosti alebo metódy na kolekciu ShapeRange

Ak môžete vykonať operáciu na viacerých vybratých tvaroch v používateľskom rozhraní súčasne, môžete vykonať programový ekvivalent vytvorením  kolekcie ShapeRange  a následným použitím príslušných vlastností alebo metód na ňu. Nasledujúci príklad vytvára rozsah tvaru, ktorý obsahuje automatické tvary s názvom „Veľká hviezda“ a „Malá hviezda“, a aplikuje na ne prechodovú výplň a aplikuje na ne prechodovú výplň.myDocument

VB

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

Nasledujú všeobecné pokyny, ako sa vlastnosti a metódy správajú, keď sú aplikované na  kolekciu ShapeRange  .

  • Aplikácia metódy na kolekciu je ekvivalentná aplikácii metódy na každý jednotlivý  objekt Shape  v tejto kolekcii.

  • Nastavenie hodnoty vlastnosti kolekcie je ekvivalentné nastaveniu hodnoty vlastnosti každého jednotlivého tvaru v danom rozsahu.

  • Vlastnosť kolekcie, ktorá vracia konštantu, vráti hodnotu vlastnosti pre individuálny tvar v kolekcii, ak všetky tvary v kolekcii majú rovnakú hodnotu pre danú vlastnosť. Ak nie všetky tvary v kolekcii majú rovnakú hodnotu vlastnosti, vráti konštantu „zmiešaná“.

  • Vlastnosť kolekcie, ktorá vracia jednoduchý dátový typ (napríklad  LongSingle alebo  String ), vráti hodnotu vlastnosti pre individuálny tvar, ak všetky tvary v kolekcii majú rovnakú hodnotu pre túto vlastnosť.

  • Hodnotu niektorých vlastností je možné vrátiť alebo nastaviť iba vtedy, ak sa v kolekcii nachádza práve jeden tvar. Ak kolekcia obsahuje viac ako jeden tvar, vyskytne sa chyba pri spustení. Toto je vo všeobecnosti prípad návratu alebo nastavenia vlastností, keď je ekvivalentná akcia v používateľskom rozhraní možná len s jedným tvarom (akcie ako úprava textu v tvare alebo úprava bodov voľného tvaru).

Predchádzajúce pokyny platia aj pri nastavovaní vlastností tvarov, ktoré sú zoskupené pod sekundárnymi objektmi kolekcie  ShapeRange  , ako je napríklad  objekt FillFormat  . Ak sekundárny objekt predstavuje operácie, ktoré možno vykonať na viacerých vybratých objektoch v používateľskom rozhraní, budete môcť vrátiť objekt z kolekcie  ShapeRange  a nastaviť jeho vlastnosti. Môžete napríklad použiť  vlastnosť Fill  na vrátenie  objektu FillFormat  , ktorý predstavuje výplne všetkých tvarov v  kolekcii ShapeRange  . Nastavením vlastností tohto  objektu FillFormat  sa nastavia rovnaké vlastnosti pre všetky jednotlivé tvary v  kolekcii ShapeRange  .

Prechádzanie cez kolekciu Shapes alebo ShapeRange

Aj keď nemôžete vykonať operáciu s niekoľkými tvarmi v používateľskom rozhraní súčasne tak, že ich vyberiete a potom použijete príkaz, ekvivalentnú akciu môžete vykonať programovo prejdením cez kolekciu Shapes  alebo  cez  kolekciu ShapeRange  , ktorá obsahuje tvary, ktoré chcete pracovať a aplikovať príslušné vlastnosti a metódy na jednotlivé  objekty Shape  v kolekcii. Nasledujúci príklad prechádza všetkými tvarmi a pridáva text do každého tvaru, ktorý je automatickým tvarom. a pridá text ku každému tvaru, ktorý je automatickým tvarom.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

Nasledujúci príklad vytvorí  kolekciu ShapeRange  , ktorá obsahuje všetky aktuálne vybraté tvary v aktívnom okne, a nastaví text v každom tvare v kolekcii, ktorá môže obsahovať text.

VB

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

Zarovnávanie, distribúcia a zoskupovanie tvarov v rozsahu tvarov

Pomocou  metód Zarovnať  a  rozmiestniť  umiestnite množinu tvarov voči sebe navzájom alebo voči dokumentu, ktorý ich obsahuje.  Na vytvorenie jedného zoskupeného tvaru zo skupiny tvarov použite  metódu Group  alebo  Regroup .


Návod na počúvanie hudby na Google Maps

Návod na počúvanie hudby na Google Maps

Návod na počúvanie hudby na Google Maps V súčasnosti môžu používatelia cestovať a počúvať hudbu pomocou aplikácie Google Map na iPhone. Dnes vás WebTech360 pozýva

Návod na používanie LifeBOX – online ukladacej služby Viettel

Návod na používanie LifeBOX – online ukladacej služby Viettel

Pokyny na používanie LifeBOX – online úložnej služby Viettel, LifeBOX je novo spustená online úložná služba Viettel s mnohými vynikajúcimi funkciami

Ako aktualizovať stav na Facebooku Messenger

Ako aktualizovať stav na Facebooku Messenger

Ako aktualizovať stav na Facebooku Messenger, Facebook Messenger v najnovšej verzii poskytol používateľom mimoriadne užitočnú funkciu: zmenu

Návod na kartovú hru Werewolf Online na počítači

Návod na kartovú hru Werewolf Online na počítači

Návod na kartovú hru Werewolf Online na počítači, Návod na stiahnutie, inštaláciu a hranie Werewolf Online na počítači cez extrémne jednoduchý emulátor LDPlayer.

Pokyny na odstránenie príbehov uverejnených na Instagrame

Pokyny na odstránenie príbehov uverejnených na Instagrame

Návod na odstránenie príbehov uverejnených na Instagrame Ak chcete odstrániť príbeh na Instagrame, ale neviete ako? Dnes WebTech360

Pokyny na pridávanie odporúčaných fotografií na Facebook

Pokyny na pridávanie odporúčaných fotografií na Facebook

Pokyny na pridávanie odporúčaných obrázkov na Facebook V súčasnosti nám Facebook umožňuje nastaviť odporúčané obrázky na našich osobných stránkach. Tu vás pozývame

Ako opraviť chybu Windows Quick Assist nefunguje

Ako opraviť chybu Windows Quick Assist nefunguje

Ako opraviť chybu Windows Quick Assist nefunguje, Windows Quick Assist vám pomôže ľahko sa pripojiť k vzdialenému počítaču. Niekedy však generuje aj chyby. Ale,

Návod na zapnutie/vypnutie mixovania skladieb na Spotify

Návod na zapnutie/vypnutie mixovania skladieb na Spotify

Pokyny na zapnutie/vypnutie miešania skladieb na Spotify, ktoré ľuďom pomôžu rýchlo zmeniť poradie skladieb vo vyššie uvedenom zozname hudobných skladieb

Pokyny na tajné nahrávanie zvuku na iPhone

Pokyny na tajné nahrávanie zvuku na iPhone

Pokyny pre tajné nahrávanie na iPhone, V súčasnosti môžu používatelia iPhone nahrávať tajne dotykom na zadnú stranu telefónu. Dnes vás WebTech360 pozýva

Ako používať Mixamo na animáciu vlastných 3D modelov

Ako používať Mixamo na animáciu vlastných 3D modelov

Ako používať Mixamo na animáciu vlastných 3D modelov Pomocou Mixama môžete jednoducho importovať 3D model a aplikovať naň efekty animácie. Nižšie sú uvedené pokyny na použitie