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  Long ,  Single 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 .

Zanechať komentár

Šablóna PowerPointu o výročnej správe neziskovej organizácie: Možnosti bezplatného stiahnutia a kontrolný zoznam slajdov

Šablóna PowerPointu o výročnej správe neziskovej organizácie: Možnosti bezplatného stiahnutia a kontrolný zoznam slajdov

Vytvorte prehľadnú výročnú správu neziskovej organizácie v PowerPointe s bezplatnou šablónou, praktickou štruktúrou slajdov, metrikami vplyvu, finančnými údajmi a tipmi na prezentácie pripravené pre darcov.

Šablóna PowerPointu pre minimalistickú investorskú prezentáciu pre technologické startupy: Čo zahrnúť a čo vynechať

Šablóna PowerPointu pre minimalistickú investorskú prezentáciu pre technologické startupy: Čo zahrnúť a čo vynechať

Vytvorte si v PowerPointe prezentáciu pre investorov z oblasti čistých technologických startupov s praktickou štruktúrou slajdov, posolstvom zameraným na dôkazy, prístupným dizajnom a menším počtom rušivých elementov.

Šablóna matice delegovania úloh pre Word: Praktická verzia pre manažérov malých tímov

Šablóna matice delegovania úloh pre Word: Praktická verzia pre manažérov malých tímov

Pomocou tejto jednoduchej šablóny matice delegovania úloh vo Worde môžete priradiť vlastníkov, limity rozhodovania, termíny a kontrolné body bez toho, aby ste príliš komplikovali malý tím.

Šablóna jednoduchého hárku dochádzky do škôlky: Prihlásenie a odhlásenie na vytlačenie pre domácu starostlivosť o deti

Šablóna jednoduchého hárku dochádzky do škôlky: Prihlásenie a odhlásenie na vytlačenie pre domácu starostlivosť o deti

Použite tento jednoduchý tlačiteľný hárok dochádzky do škôlky pre domácu starostlivosť o deti s menami detí, časmi príchodu/odchodu, podpismi a tipmi na dodržiavanie predpisov.

Šablóna marketingovej stratégie na jednu stránku na tlač pre miestne firmy

Šablóna marketingovej stratégie na jednu stránku na tlač pre miestne firmy

Použite túto šablónu marketingovej stratégie na vytlačenie na definovanie vášho miestneho publika, ponuky, kanálov, rozpočtu, týždenných akcií a merateľných cieľov.

Ako zabrániť Excelu v automatickej zmene čísel na dátumy

Ako zabrániť Excelu v automatickej zmene čísel na dátumy

Zastavte Excel v konverzii hodnôt ako 1/2, 11-53 alebo JAN1 na dátumy. Naučte sa spoľahlivé riešenia pre písanie, vkladanie, import CSV a už konvertované bunky.

Šablóna PowerPointovej prezentácie moderného zoznamu nehnuteľností (bezplatná): Čo zahrnúť

Šablóna PowerPointovej prezentácie moderného zoznamu nehnuteľností (bezplatná): Čo zahrnúť

Vytvorte si bezplatne elegantný PowerPointový zápis nehnuteľnosti s praktickým plánom slajdov, fotografiami, brandingom, tipmi na prístupnosť, dodržiavanie predpisov a export.

Ako opraviť chybu Outlooku: Nemožno odoslať e-mail, ale príjem funguje

Ako opraviť chybu Outlooku: Nemožno odoslať e-mail, ale príjem funguje

Opravte Outlook, keď môžete prijímať e-maily, ale nemôžete ich odosielať. Skontrolujte Poštovú schránku na odoslanie, offline režim, prihlásenie, nastavenia SMTP, profily a zmeny v Microsoft 365.

Jednoduchá šablóna Excelu na sledovanie dvojtyždenného mzdového účtovníctva pre malé tímy: Praktická príručka na nastavenie

Jednoduchá šablóna Excelu na sledovanie dvojtyždenného mzdového účtovníctva pre malé tímy: Praktická príručka na nastavenie

Vytvorte jednoduchý dvojtyždenný sledovač miezd v Exceli pre malý tím, vrátane hodín, výplat, odpočtov, príznakov na kontrolu, súhrnov a usmernení na vedenie záznamov.

Kontrolný zoznam pre plánovanie udalostí a šablóna rozpočtu na tlač pre Word: Čo zahrnúť a kedy namiesto toho použiť Excel

Kontrolný zoznam pre plánovanie udalostí a šablóna rozpočtu na tlač pre Word: Čo zahrnúť a kedy namiesto toho použiť Excel

Vytvorte alebo prispôsobte si tlačiteľnú šablónu kontrolného zoznamu a rozpočtu pre plánovanie udalostí v programe Microsoft Word s praktickými časťami, kompromismi a tipmi pre porovnanie Wordu a Excelu.