Hogyan lehet alakzatokat létrehozni és beszúrni a PowerPointba VBA segítségével?

Néhány nappal ezelőtt automatizálni akartam azt a meglehetősen hétköznapi feladatot, hogy néhány PowerPoint-diát készítsek. A PowerPoint automatizálása során általában a Diák és alakzatok gyűjteményével dolgozik. A Diák meglehetősen magától értetődőek, az alakzatok pedig nagyjából minden mást, beleértve a szövegdobozokat, a műveletgombokat, a médiaobjektumokat, a címkéket, a képeket, a kiemeléseket, a folyamatábrákat és így tovább, és így tovább. Bár bemutatom a PowerPoint technikáit, a szintaxis egy része valóban jól alkalmazható a Microsoft Word és az Excel esetében.

Összefoglalva, mielőtt elkezdené a VBA-makrófejlesztést a PowerPointban, engedélyeznie kell a fejlesztési lapot .

Először is kezdjük azzal, hogy automatikusan létrehozunk egy prezentációt néhány diával, amint az ebben az oktatóanyagban látható: bemutató létrehozása VBA-ban .

Most elkezdhetünk dolgozni a Shapes-szel. Először is nyissa meg a VBA-szerkesztőt az Alt+F11 billentyűkombináció megnyomásával. Ha követte az előző oktatóprogramot, akkor az 1. modulnak szerepelnie kell a Modulok listájában (lásd alább).

Alakzatokkal való munkavégzés VBA-val

Szövegdoboz hozzáadása VBA-val

Kezdjük azzal, hogy függőleges szövegdobozt adunk a bemutató első diájához. Adja hozzá a következő kódot az 1. modulhoz, majd nyomja meg a Mentés gombot (Ctrl+s), majd futtassa a makrót (nyomja meg az F5 billentyűt vagy az Al/Felhasználói űrlap futtatása).

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

Vegye figyelembe, hogy a szövegdoboz méreteit meglehetősen egyszerűen át tudja méretezni a VBA segítségével. Ebben az esetben a második dián átméretezzük az első alakzatot, szükség szerint módosíthatja.

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

Szövegeffektusok VBA-val

Tételezzük fel most, hogy a prezentáció összes diájához szeretnénk szövegdobozt hozzáadni, ezúttal egy kicsit tetszetősebben. Ehhez a VBA segítségével egyedi szövegeffektusokat készítünk, amelyeket be tudunk ágyazni a prezentáció egy vagy több diájába. Először végignézzük a bemutató diákat, majd szükség szerint hozzáadjuk a szövegeffektust.

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

Íme az eredmény ;-):

Hogyan lehet alakzatokat létrehozni és beszúrni a PowerPointba VBA segítségével?

Vegye figyelembe, hogy használhat egy egyszerű vízjelet is ennek a konkrét eredménynek az eléréséhez.

PowerPoint kiemelések VBA-val

A következő példánk az lesz, hogy kiemeléseket ad hozzá a prezentációhoz. Ebben a példában kiemelést adunk a második diához.

Sub CreateCallout()

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

End Sub

Egy alakzat tulajdonságainak beállítása

Az alakzatok sok formázási tulajdonságát nem olyan tulajdonságok állítják be, amelyek közvetlenül az  Shape  vagy  ShapeRange  objektumra vonatkoznak. Ehelyett a kapcsolódó alakzat attribútumok a másodlagos objektumok alá vannak csoportosítva, mint például a  FillFormat  objektum, amely az alakzat kitöltéséhez kapcsolódó összes tulajdonságot tartalmazza, vagy a  LinkFormat  objektum, amely tartalmazza az összes olyan tulajdonságot, amely a csatolt OLE objektumokra jellemző. Egy alakzat tulajdonságainak beállításához először vissza kell adnia azt az objektumot, amely a kapcsolódó alakattribútumok halmazát reprezentálja, majd be kell állítania a visszaadott objektum tulajdonságait. Például a  Fill tulajdonságot használja a FillFormat objektum  visszaadásához   , majd  a FillFormat objektum ForeColor  tulajdonságával  állítsa be  a kitöltési előtér színét a megadott alakzathoz, ahogy az a következő példában látható.

VB

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

Egy tulajdonság vagy módszer alkalmazása több alakzatra egyidejűleg

A felhasználói felületen van néhány művelet, amelyet több kiválasztott alakzattal is végrehajthat; például kiválaszthat több alakzatot, és egyszerre beállíthatja az összes egyedi kitöltést. Vannak más műveletek is, amelyeket csak egyetlen kiválasztott alakzattal hajthat végre; például csak akkor szerkesztheti az alakzat szövegét, ha egyetlen alakzat van kijelölve.

A Visual Basicben kétféleképpen lehet tulajdonságokat és módszereket alkalmazni egy alakzatkészletre. Ez a két mód lehetővé teszi bármely olyan művelet végrehajtását, amelyet egyetlen alakzaton végrehajthat egy sor alakzaton, függetlenül attól, hogy ugyanazt a műveletet végrehajthatja-e a felhasználói felületen vagy sem.

  • Ha a művelet több kiválasztott alakzaton működik a felhasználói felületen, akkor ugyanezt a műveletet a Visual Basicben is végrehajthatja úgy, hogy létrehoz egy  ShapeRange  gyűjteményt, amely tartalmazza a dolgozni kívánt alakzatokat, és a megfelelő tulajdonságokat és metódusokat közvetlenül a  ShapeRange  gyűjteményre alkalmazza.

  • Ha a művelet nem működik több kiválasztott alakzaton a felhasználói felületen, akkor is végrehajthatja a műveletet a Visual Basic rendszerben úgy, hogy a  Shapes  gyűjteményben vagy   a kezelni kívánt alakzatokat tartalmazó ShapeRange gyűjteményben hurkol, és alkalmazza a megfelelő tulajdonságokat. és metódusokat  a gyűjteményben lévő egyes  Shape objektumokhoz.

A Shape  objektumra és  a ShapeRange gyűjteményre vonatkozó számos tulajdonság és módszer   meghiúsul, ha bizonyos típusú alakzatokra alkalmazzák. Például a  TextFrame  tulajdonság meghiúsul, ha olyan alakzatra alkalmazza, amely nem tartalmazhat szöveget. Ha nem biztos abban, hogy egy  ShapeRange  gyűjteményben minden alakzathoz alkalmazható egy bizonyos tulajdonság vagy metódus, akkor ne alkalmazza a tulajdonságot vagy metódust a  ShapeRange  gyűjteményre. Ha e tulajdonságok vagy módszerek valamelyikét alakzatgyűjteményre szeretné alkalmazni, akkor a tulajdonság vagy módszer alkalmazása előtt végig kell böngésznie a gyűjteményt, és tesztelnie kell az egyes alakzatokat, hogy megbizonyosodjon arról, hogy megfelelő típusú-e.

Tulajdonság vagy metódus alkalmazása ShapeRange gyűjteményre

Ha egyszerre több kiválasztott alakzaton is végrehajthat műveletet a felhasználói felületen, akkor a programozott megfelelőt úgy hajthatja végre, hogy létrehoz egy  ShapeRange  gyűjteményt, majd alkalmazza rá a megfelelő tulajdonságokat vagy metódusokat. A következő példa egy olyan alaktartományt hoz létre, amely tartalmazza a "Nagy csillag" és a "Kiscsillag" elnevezésű automatikus alakzatokat, és színátmenetes kitöltést alkalmaz rájuk, majd színátmenetes kitöltést alkalmaz rájuk.myDocument

VB

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

Az alábbiakban általános irányelvek találhatók arra vonatkozóan, hogy a tulajdonságok és módszerek hogyan viselkednek, amikor ShapeRange- gyűjteményre alkalmazzák őket   .

  • Egy metódus gyűjteményre történő alkalmazása egyenértékű a metódus alkalmazásával   a gyűjteményben lévő egyes Shape objektumokra.

  • A gyűjtemény egy tulajdonsága értékének beállítása megegyezik az adott tartományban lévő egyes alakzatok tulajdonság értékének beállításával.

  • A gyűjtemény olyan tulajdonsága, amely egy állandót ad vissza, visszaadja a gyűjtemény egy egyedi alakzatának tulajdonság értékét, ha a gyűjteményben lévő összes alakzatnak azonos értéke van az adott tulajdonsághoz. Ha a gyűjteményben nem minden alakzatnak ugyanaz az értéke, akkor a "vegyes" állandót adja vissza.

  • A gyűjtemény olyan tulajdonsága, amely egy egyszerű adattípust (például  LongSingle vagy  String ) ad vissza, visszaadja a tulajdonság értékét egy egyedi alakzathoz, ha a gyűjteményben lévő összes alakzatnak ugyanaz az értéke az adott tulajdonsághoz.

  • Egyes tulajdonságok értéke csak akkor adható vissza vagy állítható be, ha pontosan egy alakzat van a gyűjteményben. Ha egynél több alakzat van a gyűjteményben, futási hiba történik. Általában ez a helyzet a tulajdonságok visszaadásánál vagy beállításánál, amikor az egyenértékű művelet a felhasználói felületen csak egyetlen alakzattal lehetséges (például szövegszerkesztés egy alakzatban vagy egy szabad formájú pontok szerkesztése).

Az előző irányelvek akkor is érvényesek, amikor olyan alakzatok tulajdonságait állítja be, amelyek a  ShapeRange  gyűjtemény másodlagos objektumai, például a  FillFormat  objektum alá vannak csoportosítva. Ha a másodlagos objektum olyan műveleteket képvisel, amelyek a felhasználói felületen több kiválasztott objektumon is végrehajthatók, akkor visszaadhatja az objektumot egy  ShapeRange  gyűjteményből, és beállíthatja annak tulajdonságait. A Fill  tulajdonság  segítségével például visszaadhatja  a FillFormat objektumot, amely a ShapeRange gyűjtemény  összes alakzatának kitöltését reprezentálja   . A FillFormat objektum tulajdonságainak beállítása  ugyanazokat a tulajdonságokat állítja be a ShapeRange gyűjteményben  található összes egyedi alakzathoz   .

A Shapes vagy ShapeRange gyűjtemény áthaladása

Még akkor is, ha a felhasználói felületen nem tud egyszerre műveletet végrehajtani több alakzaton, ha kijelöli őket, majd parancsot használ, az egyenértékű műveletet programozottan is végrehajthatja a  Shapes  gyűjteményben vagy az   Ön által megadott alakzatokat tartalmazó ShapeRange gyűjteményben. szeretne dolgozni, és alkalmazza a megfelelő tulajdonságokat és módszereket a   gyűjtemény egyes Shape objektumaira. A következő példa végigfut az összes alakzaton, és szöveget ad hozzá minden egyes alakzathoz, amely automatikus alakzat. és szöveget ad hozzá minden egyes alakzathoz, amely automatikus alakzat.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

A következő példa olyan  ShapeRange  gyűjteményt hoz létre, amely tartalmazza az aktív ablakban lévő összes aktuálisan kijelölt alakzatot, és beállítja a szöveget a gyűjtemény minden olyan alakzatában, amely szöveget tartalmazhat.

VB

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

Alakzatok igazítása, elosztása és csoportosítása egy alaktartományban

Használja az  Igazítás  és  Elosztás  metódusokat az alakzatok egymáshoz vagy az azokat tartalmazó dokumentumhoz viszonyított pozicionálásához. Használja a  Csoport  vagy az  Újracsoport  módszert egyetlen csoportos alakzat létrehozásához alakzatok halmazából.

Hagyj kommentárt

Független vállalkozó költségnapló sablon amerikai szabadúszóknak: Mit kell nyilvántartani 2026-ban

Független vállalkozó költségnapló sablon amerikai szabadúszóknak: Mit kell nyilvántartani 2026-ban

Készítsen gyakorlati költségnaplót amerikai szabadúszóknak Schedule C-barát kategóriákkal, számlamezőkkel, kilométerkövetéssel és a 2026-os IRS szabálymódosításokkal.

A legjobb ingyenes számlázó alkalmazások kis szolgáltató vállalkozások számára az USA-ban (2026)

A legjobb ingyenes számlázó alkalmazások kis szolgáltató vállalkozások számára az USA-ban (2026)

Hasonlítsa össze a legjobb ingyenes számlázó alkalmazásokat az amerikai szolgáltató vállalkozások számára 2026-ban, beleértve a Zoho Invoice, Wave, Square, PayPal és Invoice Ninja megoldásokat.

Ingyenes Excel sablon bérleti ingatlan költségeinek és bevételeinek nyomon követésére: Kezdőknek szóló útmutató

Ingyenes Excel sablon bérleti ingatlan költségeinek és bevételeinek nyomon követésére: Kezdőknek szóló útmutató

Használjon ingyenes Excel bérleti ingatlan nyomonkövetőt a bevételek, költségek, ingatlanok és havi cash flow szervezésére. Tanulja meg, mit rögzítsen, hogyan állítsa be, és milyen hibákat kerüljön el.

Ingyenes projektstátusz-jelentés prezentációs sablon Agile csapatoknak: Mit tartalmazzon?

Ingyenes projektstátusz-jelentés prezentációs sablon Agile csapatoknak: Mit tartalmazzon?

Használd ezt az ingyenes, másolásra kész Agile projektstátusz-jelentés prezentációs sablont a haladás, a kockázatok, a döntések és a következő lépések bemutatására úgy, hogy a frissítések ne váljanak zajossá.

Hogyan javítsd meg a „PowerPoint képernyőrögzítés hangja nem működik” hibát

Hogyan javítsd meg a „PowerPoint képernyőrögzítés hangja nem működik” hibát

A PowerPoint képernyőrögzítésnek van videója, de nincs hangja? Ellenőrizd a Hang vezérlőt, a Windows mikrofon-hozzáférést, a bemeneti beállításokat, a lejátszási kompatibilitást, a frissítéseket és a javítást.

Ingyenes munkavállalói műszakbeosztás sablon Excelben, óraszámolóval

Ingyenes munkavállalói műszakbeosztás sablon Excelben, óraszámolóval

Készítsen ingyenes Excel munkavállalói műszakbeosztást automatikus óraszámítással, éjszakai műszakok kezelésével, szünet levonásokkal, heti összesítésekkel, túlóra tervezési jelzőkkel és nyomtatható csapatnézettel.

Ingyenes kisvállalkozási számlasablon Excelhez automatizált forgalmiadó-számítással

Ingyenes kisvállalkozási számlasablon Excelhez automatizált forgalmiadó-számítással

Készítsen ingyenes Excel számlasablont, amely automatikusan kiszámítja az adóalapot, a forgalmi adót és a végösszeget. Hasonlítsa össze az egységes kulcsos, a keresőtáblás és a tételenkénti adóbeállításokat, és tudja meg, mikor nem elég már az Excel.

Hogyan alakítsunk át PDF-et szerkeszthető Word-dokumentummá formázási veszteség nélkül

Hogyan alakítsunk át PDF-et szerkeszthető Word-dokumentummá formázási veszteség nélkül

Alakítsd át a PDF-et szerkeszthető Word-dokumentummá a lehető legkisebb formázási veszteséggel a Word vagy az Acrobat segítségével. Tanuld meg, mikor működik a közvetlen konverzió, mikor van szükség OCR-re, és hogyan javíthatóak a táblázatok, betűtípusok és oldaltörések.

Nyomtatható építési munkabecslő sablon Excelben kisvállalkozóknak

Nyomtatható építési munkabecslő sablon Excelben kisvállalkozóknak

Készítsen nyomtatható építési munkabecslést Excelben: terjedelmi leírás, anyagköltség, munkadíj, rezsiköltség, tartalék, felár, adó és nyomtatásra kész összesítés – képletekkel és a kerülendő hibákkal.

Hogyan készítsünk egyszerű lead-nyomkövető rendszert Excelben, mielőtt CRM-et vásárolnánk

Hogyan készítsünk egyszerű lead-nyomkövető rendszert Excelben, mielőtt CRM-et vásárolnánk

Építs fel egy gyakorlati lead-nyomkövetőt Excelben: táblázat, szakasz legördülő menük, utánkövetési dátumok, késedelmi jelzések, szűrők és egyszerű pipeline-összefoglaló – plusz jelek, hogy ideje áttérni egy CRM-re.