Príklady a výukové programy pre makrá VBA v programe PowerPoint

Toto je kompletný sprievodca automatizáciou programu PowerPoint pomocou makier VBA (Visual Basic for Applications). Nasleduje mnoho užitočných príkladov.

VBA PDF (bezplatné sťahovanie)

Stiahnite si náš bezplatný návod Microsoft PowerPoint VBA! Alebo návody VBA pre iné programy balíka Office!

Stiahnuť ▼

Výukový program PowerPoint VBA (makrá)

Uložiť ako prezentáciu povolenú v makre

Prezentácia s kódom VBA by mala byť „Uložená ako“ Prezentácia s povoleným makrom PowerPoint (*.pptm)

Na páse s nástrojmi povoľte kartu „Vývojár“

Pred vytvorením kódu VBA by ste mali na páse s nástrojmi povoliť kartu Vývojár. Ak to chcete urobiť, zvoľte Súbor -> Možnosti, potom kliknite na „Prispôsobiť pás s nástrojmi“ a začiarknite políčko vedľa karty „Vývojár“ na pravom paneli.

Vytvorte makro programu PowerPoint

Toto je jednoduchý príklad makra PowerPoint VBA:

1234567891011 Sub SavePresentationAsPDF ()Dim pptName As StringDim PDFName As String„Uložte PowerPoint ako PDFpptName = ActivePresentation.FullName„Nahradiť príponu súboru PowerPoint v názve súboru PDFPDFName = vľavo (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2Koniec pod

Uloží aktívnu prezentáciu ako PDF. Každý riadok kódu robí nasledujúce:

  • Vytvára premenné pre názov programu PowerPoint a názov PDF
  • Priradí aktívny názov prezentácie premennej pptName
  • Vytvorí úplný názov PDF
  • Uloží prezentáciu ako PDF

Aplikácia PowerPoint

Keď je kód VBA spustený v rámci prezentácie programu PowerPoint, aplikácia PowerPoint je predvolená aplikácia a je možné s ňou manipulovať bez výslovného odkazu. Vytvorte novú prezentáciu

Prezentáciu vytvoríte pomocou metódy Pridať v aplikácii PowerPoint.

123 Aplikácia. Prezentácie. Pridať“alebo bez výslovného odkazuPrezentácie. Pridať

Otvorte novú prezentáciu

Na otvorenie novej a prázdnej prezentácie použite metódu Pridanie kolekcie Application.Presentations

1 Prezentácie. Pridať

Otvorte existujúcu prezentáciu

Na otvorenie prezentácie, ktorú ste už vytvorili, použite kolekciu Open method of Application.Presentations

1 Presentations.Open ("My Presentation.pptx")

Vyššie uvedený kód predpokladá, že prezentácia je v rovnakom adresári ako prezentácia PowerPoint obsahujúca kód.

Otvorte a priraďte premennej

Prezentáciu, ktorú otvoríte, by ste mali priradiť k premennej, aby ste s ňou mohli manipulovať podľa svojich požiadaviek.

12 Dim ppt ako prezentáciaNastaviť ppt = Presentations.Open ("My Presentation.pptx")

Pozrite si aktívnu prezentáciu

Použite odkaz ActivePrentation na manipuláciu s prezentáciou aktívnou v GUI, keď je spustený kód VBA.

12 'Vytlačte názov ActivePresentation do okamžitého oknaDebug.Print ActivePresentation.Name

Uložiť aktuálnu prezentáciu

Nasledujúci príkaz uloží aktívnu prezentáciu, ak bola predtým uložená. Ak nebol uložený, zobrazí sa výzva s dialógovým oknom „Uložiť ako“.

1 ActivePresentation.Save

Zatvoriť aktuálnu prezentáciu

Nasledujúci príkaz zatvorí aktívnu prezentáciu, aj keď nebol uložený po poslednej úprave.

1 ActivePresentation.Zavrieť

Užitočné referencie

Priradiť existujúcu prezentáciu (podľa názvu) k premennej

12 Dim myPresentationByName ako prezentáciuNastaviť myPresentationByName = Application.Presentations ("Moja prezentácia")

Priradiť aktívnu snímku k premennej

12 Stlmiť prúdSlide As SlideNastaviť currentSlide = Application.ActiveWindow.View.Slide

Priradiť snímku podľa indexu k premennej

12 Dim mySlide As SlideNastaviť mySlide = ActivePresentation.Slides (11)

Spočítajte počet snímok

12 Dim slidCount as DimslideCount = ActivePresentation.Slides.Count

Získať index snímky aktuálnej snímky

12 Stlmiť aktuálnySlideIndex ako snímkucurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndex

Pridajte prázdnu snímku na koniec prezentácie

1234567 Dim slidCount as DimDim newSlide as SlideslideCount = ActivePresentation.Slides.CountNastaviť newSlide = ActivePresentation.Slides.Add (slideCount + 1, 12)'alebo ako ppLayoutBlank = 12Nastaviť novýSlide = ActivePresentation.Slides.Add (slideCount + 1, ppLayoutBlank)

Pridať snímku za aktuálnu snímku

12345 Dim newSlide As SlideStlmiť currentSlideIndex ako celé číslocurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndexNastaviť newSlide = ActivePresentation.Slides.Add (currentSlideIndex, ppLayoutBlank)

Odstrániť snímku

1234 Stlmiť currentSlideIndex ako celé číslocurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndexActivePresentation.Slides (currentSlideIndex). Odstrániť

Prejdite na konkrétnu snímku

12 „Tým sa dostanete na snímku číslo 4Application.ActiveWindow.View.GotoSlide (4)

Presunúť snímku

Snímku môžete presunúť zo starej polohy do novej polohy

123456 'Prejdite zo snímky 3 na prvú snímkuDim oldPosition as integer, dim newPosition as integerstará pozícia = 3nová pozícia = 1ActivePresentation.Slides (oldPosition) .MoveTo toPos: = newPosition

Smyčka cez všetky snímky

S každým snímkom môžete niečo urobiť alebo prejsť všetkými snímkami, aby ste našli niekoľko snímok, a s kódom niečo urobiť;

123456 Stmaviť mySlide ako SlidePre každý mySlide v ActivePresentation.Slides„Urobte niečo s aktuálnou snímkou ​​uvedenou v premennej„ mySlide “„Debug.Print mySlide.NameNasledujúca snímka

Smyčka cez všetky tvary aktívnej snímky

Silu programu PowerPoint je možné realizovať pomocou „tvarov“. Nasledujúci kód prechádza všetkými tvarmi na aktuálnej snímke, takže s nimi môžete manipulovať, ako chcete;

123456789 Stlmiť prúdSlide as SlideDim shp ako ShapeNastaviť currentSlide = Application.ActiveWindow.View.SlidePre každý nákup v aktuálnomSlide.Shapes„Urobte niečo so súčasným tvarom uvedeným v premennej„ shp “'Napríklad vytlačte názov tvaru v okamžitom okneDebug.Print shp.NameĎalej shp

Smyčka cez všetky tvary na všetkých snímkach

Môžete prechádzať všetkými tvarmi v prezentácii pridaním slučky, ktorá prejde všetkými snímkami.

123456789 Stlmiť prúdSlide as SlideDim shp ako ShapePre každý aktuálnySlide In ActivePresentation.SlidesPre každý nákup v aktuálnomSlide.Shapes„Urobte niečo so súčasným tvarom uvedeným v premennej„ shp “Debug.Print shp.NameĎalej shpNasledujúci aktuálnySlide

Prechádzajte všetkými textovými políčkami aktívnej snímky

Textové boxy sú najčastejšie používaným tvarom v prezentáciách programu PowerPoint. Môžete prechádzať všetkými textovými poliami začiarknutím políčka „Typ tvaru“. TexBoxy majú typ tvaru definovaný ako konštanta VBA msoTextBox (číselná hodnota konštanty je 17)

1234567891011 Stlmiť prúdSlide as SlideDim shp ako ShapeNastaviť currentSlide = Application.ActiveWindow.View.SlidePre každý nákup v aktuálnomSlide.Shapes'Skontrolujte, či je typ tvaru msoTextBoxAk shp.Type = 17, potom 'msoTextBox = 17'Vytlačte text v textovom poliDebug.Print shp.TextFrame2.TextRange.TextKoniec AkĎalej shp

Prechádzajte všetkými textovými políčkami na všetkých snímkach

Opäť môžete prechádzať všetkými textovými políčkami v prezentácii pridaním slučky, ktorá prejde všetkými snímkami.

1234567891011 Dim currentSlide as Slide Dim shp as ShapePre každý aktuálnySlide In ActivePresentation.SlidesPre každý nákup v aktuálnomSlide.Shapes'Skontrolujte, či je typ tvaru msoTextBoxAk shp.Type = 17, potom 'msoTextBox = 17„Vykonajte niečo s textovým rámcom uvedeným v premennej„ shp “Debug.Print shp.TextFrame2.TextRange.TextKoniec AkĎalej shpNasledujúci aktuálnySlide

Skopírujte vybrané snímky do novej prezentácie PPT

Ak chcete skopírovať určité snímky do nových prezentácií, najskôr vyberte požadované snímky v existujúcej prezentácii a potom spustite kód uvedený nižšie;

123456789101112131415161718 Stlmiť aktuálnuPrezentáciu ako prezentáciuStlmiť prúdSlide as SlideStmaviť novéPrezentácia ako prezentácia'Uložiť odkaz na aktuálnu prezentáciuNastaviť currentPresentation = Application.ActivePresentation'Uložiť odkaz na aktuálnu snímkuNastaviť currentSlide = Application.ActiveWindow.View.Slide'Pridajte novú prezentáciu a uložte ju ako referenciuNastaviť NewPresentation = Application.Presentations.Add'Skopírujte vybrané snímkyVýber. Kopírovať„Prilepte to do novej prezentácieNewPresentation.Slides.Paste

Skopírujte aktívnu snímku na koniec aktívnej prezentácie

12345 'Skopírujte aktuálnu snímkuApplication.ActiveWindow.View.Slide.Copy„Prilepte na koniecActivePresentation.Slides.Paste

Užitočné príklady makra v programe PowerPoint

Tu je niekoľko užitočných príkladov makier, ktoré ukazujú, ako vykonávať úlohy. Tieto budú tiež demonštrovať vyššie popísané koncepty.

Zmeniť prezentáciu počas prezentácie

1234567891011 Sub ChangeSlideDuringSlideShow ()Dim SlideIndex ako celé čísloDim SlideIndexPredošlé ako celé číslo'Počas prezentácie zmeniť aktuálnu snímku na vybranú snímku 4SlideIndex = 4„Index aktuálneho okna prezentácie je 1 v kolekcii SlideShowWindowsSlideIndexPrevious = SlideShowWindows (1) .View.CurrentShowPositionSlideShowWindows (1). View.GotoSlide SlideIndexKoniec pod

Zmeniť písmo na všetkých snímkach vo všetkých textových poliach

123456789101112131415 Vedľajšia zmenaFontOnAllSlides ()Dim mySlide As slideDim shp As Shape„Zmeňte veľkosť písma na všetkých snímkachPre každý mySlide v ActivePresentation.SlidesZa každý nákup v MySlide.ShapesAk shp.Type = 17, potom 'msoTextBox = 17„Zmeňte veľkosť písma na 24shp.TextFrame.TextRange.Font.Size = 24Koniec AkĎalej shpĎalej mySlideKoniec pod

Zmeniť veľkosť písmen z horných na normálne vo všetkých textových poliach

123456789101112131415 Sub ChangeCaseFromUppertoNormal ()Dim mySlide As slideDim shp As Shape„Zmeniť z veľkých písmen na normálne písmená pre všetky snímkyPre každý mySlide v ActivePresentation.SlidesZa každý nákup v MySlide.ShapesAk shp.Type = 17, potom 'msoTextBox = 17„Zmeňte veľké písmená na normálneshp.TextFrame2.TextRange.Font.Allcaps = FalseKoniec AkĎalej shpĎalej mySlideKoniec pod

Vo všetkých textových poliach prepínajte veľké a malé písmena

12345678910111213141516 Sub ToggleCaseBetweenUpperAndNormal ()Dim mySlide As slideDim shp As Shape'Pre všetky snímky prepínajte medzi veľkými a malými písmenamiPre každý mySlide v ActivePresentation.SlidesZa každý nákup v MySlide.ShapesAk shp.Type = 17, potom 'msoTextBox = 17„Prepínajte medzi veľkými a malými písmenamishp.TextFrame2.TextRange.Font.Allcaps = _Nie je to shp.TextFrame2.TextRange.Font.AllcapsKoniec AkĎalej shpĎalej mySlideKoniec pod

Odstráňte podčiarknutie zo zostupu

V typografii je zostupná časť písmena, ktoré siaha pod základnú čiaru písma. Vo väčšine písiem sú zostupujúce znaky vyhradené pre malé písmená, ako sú g, j, q, p, y a niekedy aj f.

Keď text podčiarknete, pod zjazdníkmi to nevyzerá pekne. Tu je kód na odstránenie podčiarknutia zo všetkých takýchto znakov g, j, p, q a y v celej prezentácii.

1234567891011121314151617181920212223242526 Sub RemoveUnderlineFromDescenders ()Dim mySlide As slideDim shp As ShapeDim descenders_list ako reťazecTlmená fráza ako reťazecDim x Ako dlhé'Odstráňte podčiarknutia z Zostupníkovdescenders_list = "gjpqy"Pre každý mySlide v ActivePresentation.SlidesZa každý nákup v MySlide.ShapesAk shp.Type = 17, potom 'msoTextBox = 17'Odstrániť podčiarknutie z písmen „gjpqy“S shp.TextFrame.TextRangefráza = .TextFor x = 1 To Len (.Text)Ak je InStr (descenders_list, Mid $ (fráza, x, 1))> 0 Potom.Znaky (x, 1) .Font.Underline = FalseKoniec AkDalej xUkončiť sKoniec AkĎalej shpĎalej mySlideKoniec pod

Odstráňte animácie zo všetkých snímok

Pomocou nižšie uvedeného kódu odstráňte všetky animácie nastavené v prezentácii.

123456789101112 Sub RemoveAnimationsFromAllSlides ()Dim mySlide As slideDim i As LongPre každý mySlide v ActivePresentation.SlidesPre i = mySlide.TimeLine.MainSequence.Count To 1 Krok -1„Odstráňte každú animáciumySlide.TimeLine.MainSequence.Item (i). OdstrániťĎalej iĎalej mySlideKoniec pod

Uložiť prezentáciu ako PDF

Aktívnu prezentáciu si môžete jednoducho uložiť vo formáte PDF.

1234567891011 Sub SavePresentationAsPDF ()Dim pptName As StringDim PDFName As String„Uložte PowerPoint ako PDFpptName = ActivePresentation.FullName'Nahradiť príponu súboru PowerPoint v názve súboru PDFPDFName = vľavo (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2Koniec pod

Nájdite a nahraďte text

Text môžete nájsť a nahradiť vo všetkých textových poliach všetkých snímok. Po prvej inštancii textu, ktorý chcete nájsť (definovaný príkazom findWhat), musíte prejsť príkazom Find a nájsť ďalšie inštancie, ak nejaké existujú.

123456789101112131415161718192021222324252627282930313233 Sub FindAndReplaceText ()Dim mySlide As slideDim shp As ShapeDim findWhat As StringDim replaceWith As StringDim ShpTxt ako rozsah textuDim TmpTxt ako rozsah textufindWhat = "šakal"replaceWith = "líška"„Nájdite a nájdite a vymeňtePre každý mySlide v ActivePresentation.SlidesZa každý nákup v MySlide.ShapesAk shp.Type = 17, potom 'msoTextBox = 17Nastaviť ShpTxt = shp.TextFrame.TextRange„Nájdite prvý výskyt slova„ Nájsť “(ak existuje)Nastaviť TmpTxt = ShpTxt.Replace (findWhat, _Nahradiť čo: = nahradiťWith, _WholeWords: = True)„Nájsť akékoľvek ďalšie inštancie slova„ nájsť “(ak existuje)Robiť, keď nie, TmpTxt nie je ničNastaviť ShpTxt = ShpTxt.Character (TmpTxt.Start + TmpTxt.Length, ShpTxt.Length)Nastaviť TmpTxt = ShpTxt.Replace (findWhat, _Nahradiť čo: = nahradiťWith, _WholeWords: = True)SlučkaKoniec AkĎalej shpĎalej mySlideKoniec pod

Exportovať snímku ako obrázok

Aktuálnu SLide (alebo akúkoľvek inú snímku) môžete exportovať ako obrázok PNG alebo JPG (JPEG) alebo BMP.

1234567891011121314 Sub ExportSlideAsImage ()Dim imageType As StringDim pptName As StringDim imageName As StringDim mySlide As slide'Export aktuálnej snímky do obrázkuimageType = "png" 'alebo jpg alebo bmppptName = ActivePresentation.FullNameimageName = vľavo (pptName, InStr (pptName, ".")) & imageTypeNastaviť mySlide = Application.ActiveWindow.View.slidemySlide.Export imageName, imageTypeKoniec pod

Zmeniť veľkosť obrázku na celú snímku

1234567891011121314151617181920212223242526 Sub ResizeImageToCoverFullSlide ()Dim mySlide As slideDim shp As Shape„Zmeňte veľkosť obrázku na celú veľkosť snímky'Zmeňte výšku a šírku prvého tvaru na aktuálnej snímke„aby zodpovedali rozmerom šmýkačkyNastaviť mySlide = Application.ActiveWindow.View.slideNastaviť shp = mySlide.Shapes (1)'''Nahradiť dva statemetny vyššie za'' nasledujúce vyhlásenie, ak chcete'' rozbalí aktuálne vybraný tvar'' spôsobí chybu, ak nie je nič vybraté'Set shp = ActiveWindow.Selection.ShapeRange (1)S SHP.LockAspectRatio = False.Height = ActivePresentation.PageSetup.SlideHeight.Width = ActivePresentation.PageSetup.SlideWidth.Vľavo = 0.Najvyššie = 0Ukončiť sKoniec pod

Ukončiť všetky spustené prezentácie

Ak máte otvorených viac prezentácií súčasne, môžete ich všetky zavrieť pomocou makra nižšie.

1234567 Sub ExitAllRunningSlideShows ()Vykonajte aplikáciu SlideShowWindows.Count> 0SlideShowWindows (1). View.ExitSlučkaKoniec pod

Automatizácia PowerPointu z Excelu

K aplikácii PowerPoint sa môžete pripojiť aj prostredníctvom iných aplikácií (napríklad Excel a Word). Ako prvý krok musíte použiť inštanciu programu PowerPoint.

Existujú dva spôsoby, ako to urobiť - skorá väzba a neskorá väzba .

Otvorte PowerPoint - skorá väzba

V „Early Binding“ musíte výslovne nastaviť odkaz na „Objektovú knižnicu Microsoft PowerPoint 16“ (pre MS Office 2022) vo VBE (editor Visual Basic) pomocou možnosti Nástroje-> Referencie.

123 „Včasná väzbaDim pptApp ako aplikáciaNastaviť pptApp = nový PowerPoint.Application

Otvorte PowerPoint - Neskorá väzba

V „Neskorej väzbe“ je aplikačná premenná deklarovaná ako objekt a motor VBA sa počas behu pripája k správnej aplikácii.

123 „Neskorá väzbaDim pptApp ako objektNastaviť pptApp = CreateObject ("PowerPoint.Application")

Zviditeľnite aplikáciu

Po nastavení odkazu na aplikáciu PowperPoint bude možno potrebné ho zviditeľniť.

1 pptApp.Visible = Pravda

Manipulujte PowerPoint

Môžete použiť všetky metódy na manipuláciu s prezentáciami z PowerPointu, popísané vyššie z Excelu, jednoduchým pridaním odkazu na PowerPoint, ktorý ste vytvorili vyššie.

Napríklad

1 Presentations.Open ("My Presentation.pptx")

musí sa používať takto

1 pptApp .Presentations.Open („My Presentation.pptx“)

Zatvorte aplikáciu

Keď dokončíte to, čo ste chceli s aplikáciou PowerPoint urobiť, musíte ju zavrieť a referenciu by ste mali uvoľniť.

12 pptApp.UkončiťNastaviť pptApp = nič

Skopírujte z Excelu do PowerPointu

Tento kód skopíruje rozsah z Excelu do PowerPointu:

Poznámka: Ukázalo sa, ako je možné skopírovať rozsah z programu Excel do programu PowerPoint pomocou jazyka VBA, ako je to len možné.

12345678910111213141516171819 Sub copyRangeToPresentation ()„Otvorte novú inštanciu programu PowerPointNastaviť pptApp = CreateObject ("PowerPoint.Application")S pptApp„Vytvorte novú prezentáciuNastaviť ppt = .Presentations.Add„Pridajte prázdnu snímkuNastaviť newSlide = ppt.Slides.Add (1, 12) 'ppLayoutBlank = 12„Rozsah kopírovania z aktívneho hárka v programe ExcelActiveSheet.Range ("A1: E10"). Kopírovať„Prilepte do programu Powerpoint ako obrázoknewSlide.Shapes.PasteSpecial DataType: = 2 '2 = ppPasteEnhancedMetafile'Prepnúť na PowerPoint.AktivovaťUkončiť sKoniec pod

PowerPoint VBA - časté otázky

Čo sú to makrá v PPT?

Makro je všeobecný termín, ktorý označuje súbor programovacích pokynov, ktoré automatizujú úlohy. Makrá PowerPoint (PPT) automatizujú úlohy v programe PowerPoint pomocou programovacieho jazyka VBA.

Ako môžem používať VBA v programe PowerPoint?

Ak chcete používať VBA v programe PowerPoint, otvorte editor VBA (ALT + F11 alebo Vývojár> Visual Basic).

Ako vytvorím makro v programe PowerPoint?

1. Otvorte editor VBA (ALT + F11 alebo Developer> Visual Basic)
2. Prejdite na položku Vložiť> Modul a vytvorte modul kódu
3. Napíšte „Sub HelloWorld“ a stlačte kláves Enter
4. Medzi riadky „Sub HelloWorld“ a „End Sub“ zadajte „MsgBox“ Hello World! “
5. Vytvorili ste makro!
6. Teraz stlačením „F5“ spustíte makro

Scenár: Vinamra Chandra

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave