Primeri in vadnice makrov PowerPoint VBA

To je popoln vodnik za avtomatizacijo programa PowerPoint z uporabo makrov VBA (Visual Basic za aplikacije). Spodaj boste našli veliko uporabnih primerov.

VBA PDF (brezplačni prenosi)

Prenesite naš brezplačni vadnik Microsoft PowerPoint VBA! Ali VBA vaje za druge pisarniške programe!

Prenesi

PowerPoint VBA (makri) Vadnica

Shrani kot predstavitev, ki omogoča makro

Predstavitev s kodo VBA mora biti predstavitev »Shranjeno kot« PowerPoint, ki podpira makro (*.pptm)

Omogočite zavihek »Razvijalec« na traku

Preden ustvarite kodo VBA, morate na traku omogočiti zavihek Razvijalec. Če želite to narediti, izberite Datoteka -> Možnosti, nato kliknite »Prilagodi trak« in potrdite polje poleg zavihka »Razvijalec« v desnem podoknu.

Ustvarite makro PowerPoint

To je preprost primer PowerPointovega makra VBA:

1234567891011 Sub SavePresentationAsPDF ()Zatemni pptName kot nizZatemni ime PDF kot niz'Shranite PowerPoint kot PDFpptName = ActivePresentation.FullName'Zamenjajte razširitev datoteke PowerPoint v imenu v PDFPDFName = Levo (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2End Sub

Aktivno predstavitev shrani kot PDF. Vsaka vrstica kode naredi naslednje:

  • Ustvari spremenljivke za ime programa PowerPoint in ime PDF
  • Ime aktivne predstavitve dodeli spremenljivki pptName
  • Ustvari celotno ime PDF
  • Predstavitev shrani kot PDF

PowerPoint aplikacija

Ko se koda VBA izvaja v predstavitvi PowerPoint, je aplikacija PowerPoint privzeta aplikacija in z njo je mogoče upravljati brez izrecnih navedb. Ustvarite novo predstavitev

Če želite ustvariti predstavitev, uporabite metodo Dodaj v aplikaciji PowerPoint.

123 Aplikacija.Predstavitve.Dodaj"ali brez izrecne navedbePredstavitve.Dodaj

Odprite novo predstavitev

Če želite odpreti novo in prazno predstavitev, uporabite metodo Dodajanje zbirke Application.Presetations

1 Predstavitve.Dodaj

Odprite obstoječo predstavitev

Če želite odpreti predstavitev, ki ste jo že ustvarili, uporabite odprto metodo zbirke Application.Presetations

1 Presentation.Open ("Moja predstavitev.pptx")

Zgornja koda predvideva, da je predstavitev v istem imeniku kot predstavitev PowerPoint, ki vsebuje kodo.

Odpri in dodeli spremenljivki

Odprto predstavitev morate dodeliti spremenljivki, tako da lahko z njo upravljate v skladu s svojimi zahtevami.

12 Dim ppt kot predstavitevNastavi ppt = Presentation.Open ("Moja predstavitev.pptx")

Glejte Aktivna predstavitev

Pri izvajanju kode VBA z referenco ActivePrentation upravljajte s predstavitvijo, aktivno v grafičnem vmesniku.

12 'Natisnite ime ActivePresentation v takojšnje oknoDebug.Print ActivePresentation.Name

Shrani trenutno predstavitev

Spodnja izjava bo shranila aktivno predstavitev, če je bila shranjena prej. Če ni shranjen, boste pozvani v pogovornem oknu »Shrani kot«.

1 ActivePresentation.Save

Zaprite trenutno predstavitev

Spodnja izjava bo zaprla aktivno predstavitev, tudi če ni bila shranjena po zadnjem urejanju.

1 ActivePresentation.Close

Koristne reference

Dodelite obstoječo predstavitev (po imenu) spremenljivki

12 Zatemni myPresentationByName As PresentationNastavi myPresentationByName = Application.Presetations ("Moja predstavitev")

Aktivnemu diapozitivu dodelite spremenljivko

12 Zatemni tok Drsni kot diapozitivNastavite currentSlide = Application.ActiveWindow.View.Slide

Dodeli diapozitiv po indeksu spremenljivki

12 Zatemni mySlide kot diapozitivNastavi mySlide = ActivePresentation.Slides (11)

Štetje Število diapozitivov

12 Zatemni slideCount As LongslideCount = ActivePresentation.Slides.Count

Pridobite indeksno število diapozitivov

12 Zatemni trenutnoSlideIndex kot diapozitivcurrentSlideIndex = Aplikacija.ActiveWindow.View.Slide.SlideIndex

Na konec diaprojekcije dodajte prazen diapozitiv

1234567 Zatemni slideCount As LongZatemni novoDrsni kot diapozitivslideCount = ActivePresentation.Slides.CountNastavi newSlide = ActivePresentation.Slides.Add (slideCount + 1, 12)'ali kot ppLayoutBlank = 12Nastavi newSlide = ActivePresentation.Slides.Add (slideCount + 1, ppLayoutBlank)

Dodajte diapozitiv za trenutnim diapozitivom

12345 Zatemni novoDrsni kot diapozitivZatemni currentSlideIndex kot celo številocurrentSlideIndex = Aplikacija.ActiveWindow.View.Slide.SlideIndexNastavi newSlide = ActivePresentation.Slides.Add (currentSlideIndex, ppLayoutBlank)

Izbrišite diapozitiv

1234 Zatemni currentSlideIndex kot celo številocurrentSlideIndex = Aplikacija.ActiveWindow.View.Slide.SlideIndexActivePresentation.Slides (currentSlideIndex) .Delete

Pojdite na določen diapozitiv

12 'To vas bo pripeljalo do diapozitiva 4Application.ActiveWindow.View.GotoSlide (4)

Premakni diapozitiv

Diapozitiv lahko premaknete iz starega v nov položaj

123456 'Premakni se s diapozitiva 3 na prvi diapozitivZatemni oldPosition kot celo število, zatemni newPosition kot celo številooldPosition = 3newPosition = 1ActivePresentation.Slides (oldPosition) .MoveTo toPos: = newPosition

Prelistajte vse diapozitive

Z vsakim diapozitivom lahko naredite nekaj ali pa poiščete vse diapozitive, da poiščete nekaj diapozitivov in naredite nekaj glede uporabe kode;

123456 Zatemni mySlide kot SlideZa vsak mySlide v ActivePresentation.Slides"Naredite nekaj s trenutnim diapozitivom iz spremenljivke" mySlide "'Debug.Natisni mySlide.NameNaslednji diapozitiv

Prelistajte vse oblike aktivnega diapozitiva

Zmogljivost PowerPointa je mogoče uresničiti z uporabo "Oblike." Spodnja koda prepleta vse oblike na trenutnem diapozitivu, tako da lahko z njimi upravljate, kot želite;

123456789 Zatemni tok Drsi kot diapozitivZatemni shp kot oblikoNastavite currentSlide = Application.ActiveWindow.View.SlideZa vsak shp V currentSlide.Shapes"Naredite nekaj s trenutno obliko, navedeno v spremenljivki" shp "'Na primer natisnite ime oblike v neposrednem oknuOdpravljanje napak. Natisni ime shpNaslednji shp

Prelistajte vse oblike v vseh diapozitivih

Vse oblike v predstavitvi lahko prelistate tako, da dodate zanko za pregled vseh diapozitivov.

123456789 Zatemni tok Drsi kot diapozitivZatemni shp kot oblikoZa vsak trenutni diapozitiv v ActivePresentation.SlidesZa vsak shp V currentSlide.Shapes"Naredite nekaj s trenutno obliko, navedeno v spremenljivki" shp "Odpravljanje napak. Natisni ime shpNaslednji shpNaslednji trenutni diapozitiv

Pomaknite se skozi vsa polja za besedilo aktivnega diapozitiva

TextBoxes so najpogosteje uporabljena oblika v predstavitvah PowerPoint. Lahko prečkate vsa polja z besedilom tako, da dodate kljukico za „Vrsta oblike.“ TexBoxes imajo obliko oblike, opredeljeno kot konstanta VBA msoTextBox (številčna vrednost konstante je 17)

1234567891011 Zatemni tok Drsi kot diapozitivZatemni shp kot oblikoNastavite currentSlide = Application.ActiveWindow.View.SlideZa vsak shp V currentSlide.Shapes'Preverite, ali je oblika oblike msoTextBoxČe je shp.Type = 17, potem je 'msoTextBox = 17'Natisnite besedilo v polju TextBoxDebug.Print shp.TextFrame2.TextRange.TextKonec ČeNaslednji shp

Prebrskaj po vseh besedilnih poljih na vseh diapozitivih

Ponovno lahko prelistate vsa polja z besedilom v predstavitvi tako, da dodate zanko za pregled vseh diapozitivov.

1234567891011 Zatemni tok Drsi kot diapozitiv Zatemni shp kot oblikoZa vsak trenutni diapozitiv v ActivePresentation.SlidesZa vsak shp V currentSlide.Shapes'Preverite, ali je oblika oblike msoTextBoxČe je shp.Type = 17, potem je 'msoTextBox = 17"Naredite nekaj s TextBoxom, omenjenim v spremenljivki" shp "Debug.Print shp.TextFrame2.TextRange.TextKonec ČeNaslednji shpNaslednji trenutni diapozitiv

Kopirajte izbrane diapozitive v novo PPT predstavitev

Če želite nekatere diapozitive kopirati v novo predstavitev, najprej izberite želene diapozitive v obstoječi predstavitvi in ​​nato zaženite spodnjo kodo;

123456789101112131415161718 Zatemni trenutno predstavitev kot predstavitevZatemni tok Drsi kot diapozitivZatemni novo predstavitev kot predstavitev'Shrani sklic na trenutno predstavitevNastavite currentPresentation = Application.ActivePresentation'Shrani sklic na trenutni diapozitivNastavite currentSlide = Application.ActiveWindow.View.Slide'Dodaj novo predstavitev in shrani v sklicNastavite NewPresentation = Application.Presetations.Add'Kopiraj izbrane diapozitiveIzbor.Kopiraj'Prilepi v novo predstavitevNewPresentation.Slides.Paste

Kopirajte aktivni diapozitiv na konec aktivne predstavitve

12345 'Kopiraj trenutni diapozitivApplication.ActiveWindow.View.Slide.Copy'Prilepi na koncuActivePresentation.Slides.Paste

Uporabni primeri makrov PowerPoint

Tukaj je nekaj uporabnih primerov makrov, ki prikazujejo, kako opravljati naloge. Ti bodo tudi pokazali zgoraj opisane koncepte.

Spremenite diaprojekcijo med diaprojekcijo

1234567891011 Sub ChangeSlideDuringSlideShow ()Zatemni SlideIndex kot celo številoZatemni SlideIndexPrevious As Integer'Med diaprojekcijo spremenite trenutni diapozitiv na izbrani diapozitiv 4SlideIndex = 4'Indeks trenutnega okna diaprojekcije je 1 v zbirki SlideShowWindowsSlideIndexPrevious = SlideShowWindows (1) .View.CurrentShowPositionSlideShowWindows (1) .View.GotoSlide SlideIndexEnd Sub

Spremeni pisavo na vseh diapozitivih v vseh poljih za besedilo

123456789101112131415 Sub ChangeFontOnAllSlides ()Zatemni moj diapozitiv kot diapozitivDim shp As Shape'Spremeni velikost pisave na vseh diapozitivihZa vsak mySlide v ActivePresentation.SlidesZa vsak shp v mySlide.ShapesČe je shp.Type = 17, potem je 'msoTextBox = 17'Spremeni velikost pisave na 24shp.TextFrame.TextRange.Font.Size = 24Konec ČeNaslednji shpNaslednji mySlideEnd Sub

Spremeni velikost črk iz zgornje v običajno v vseh poljih za besedilo

123456789101112131415 Sub ChangeCaseFromUppertoNormal ()Zatemni moj diapozitiv kot diapozitivDim shp As Shape'Za vse diapozitive preklopi iz zgornje črke v običajnoZa vsak mySlide v ActivePresentation.SlidesZa vsak shp v mySlide.ShapesČe je shp.Type = 17, potem je 'msoTextBox = 17'Spremeni zgornjo črko v običajnoshp.TextFrame2.TextRange.Font.Allcaps = FalseKonec ČeNaslednji shpNaslednji mySlideEnd Sub

Preklapljanje med velikimi in malimi črkami v vseh poljih TextBoxes

12345678910111213141516 Sub ToggleCaseBetweenUpperAndNormal ()Zatemni moj diapozitiv kot diapozitivDim shp As Shape'Za vse diapozitive preklapljajte med velikimi in običajnimi črkamiZa vsak mySlide v ActivePresentation.SlidesZa vsak shp v mySlide.ShapesČe je shp.Type = 17, potem je 'msoTextBox = 17'Preklapljanje med velikimi in običajnimi črkamishp.TextFrame2.TextRange.Font.Allcaps = _Ne shp.TextFrame2.TextRange.Font.AllcapsKonec ČeNaslednji shpNaslednji mySlideEnd Sub

Odstranite podčrtano iz Descenders

V tipografiji je spustni del črke, ki sega pod osnovno črto pisave. V večini pisav so spustniki rezervirani za male črke, kot so g, j, q, p, y in včasih f.

Ko podčrtate besedilo, pod spodaj ni videti lepo. Tu je koda za odstranitev podčrtaja iz vseh takih znakov g, j, p, q in y v celotni predstavitvi.

1234567891011121314151617181920212223242526 Sub RemoveUnderlineFromDescenders ()Zatemni moj diapozitiv kot diapozitivDim shp As ShapeZatemni descenders_list kot nizZatemni frazo As StringDim x As Long'Odstranite podčrtaje iz Descendersdescenders_list = "gjpqy"Za vsak mySlide v ActivePresentation.SlidesZa vsak shp v mySlide.ShapesČe je shp.Type = 17, potem je 'msoTextBox = 17'Odstrani podčrtaj iz črk "gjpqy"S shp.TextFrame.TextRangestavek = .BesediloZa x = 1 do Len (. Besedilo)Če je InStr (descenders_list, Mid $ (stavek, x, 1))> 0 Potem.Znaki (x, 1). Font.Underline = FalseKonec ČeNaslednji xKončaj sKonec ČeNaslednji shpNaslednji mySlideEnd Sub

Odstrani animacije z vseh diapozitivov

S spodnjo kodo odstranite vse animacije, nastavljene v predstavitvi.

123456789101112 Sub RemoveAnimationsFromAllSlides ()Zatemni moj diapozitiv kot diapozitivDim i As LongZa vsak mySlide v ActivePresentation.SlidesZa i = mySlide.TimeLine.MainSequence.Count To 1 Step -1'Odstrani vsako animacijomySlide.TimeLine.MainSequence.Item (i) .DeleteNaprej iNaslednji mySlideEnd Sub

Shrani predstavitev kot PDF

Aktivno predstavitev lahko preprosto shranite v obliki PDF.

1234567891011 Sub SavePresentationAsPDF ()Zatemni pptName kot nizZatemni ime PDF kot niz'Shranite PowerPoint kot PDFpptName = ActivePresentation.FullName'Zamenjajte razširitev datoteke PowerPoint v imenu v PDFPDFName = Levo (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2End Sub

Poišči in zamenjaj besedilo

Besedilo lahko najdete in zamenjate v vseh besedilnih poljih vseh diapozitivov. Po prvem primerku besedila, ki ga želite najti (opredeljeno s funkcijo findWhat), morate prečkati ukaz Najdi, da poiščete druge primerke, če obstajajo.

123456789101112131415161718192021222324252627282930313233 Sub FindAndReplaceText ()Zatemni moj diapozitiv kot diapozitivDim shp As ShapeZatemni najdi Kaj je kot nizDim replaceWith As StringZatemni ShpTxt kot obseg besedilaZatemni TmpTxt kot obseg besedilafindWhat = "šakal"replaceWith = "lisica"'Poišči in najdi in zamenjajZa vsak mySlide v ActivePresentation.SlidesZa vsak shp v mySlide.ShapesČe je shp.Type = 17, potem je 'msoTextBox = 17Nastavite ShpTxt = shp.TextFrame.TextRange'Najdi prvi primer besede' Najdi '(če obstaja)Nastavite TmpTxt = ShpTxt.Replace (findWhat, _Zamenjaj kaj: = zamenjajZ, _WholeWords: = Res)'Poišči dodatne primere besede' Najdi '(če obstaja)Naredi, medtem ko TmpTxt ni ničNastavi ShpTxt = ShpTxt.Caracters (TmpTxt.Start + TmpTxt.Length, ShpTxt.Length)Nastavite TmpTxt = ShpTxt.Replace (findWhat, _Zamenjaj kaj: = zamenjajZ, _WholeWords: = Res)ZankaKonec ČeNaslednji shpNaslednji mySlideEnd Sub

Izvozi diapozitiv kot sliko

Trenutni diapozitiv (ali kateri koli drug diapozitiv) lahko izvozite kot sliko PNG ali JPG (JPEG) ali BMP.

1234567891011121314 Sub ExportSlideAsImage ()Zatemni imageType As StringZatemni pptName kot nizZatemni imageName As StringZatemni moj diapozitiv kot diapozitiv'Izvozi trenutni diapozitiv v slikoimageType = "png" 'ali jpg ali bmppptName = ActivePresentation.FullNameimageName = Levo (pptName, InStr (pptName, ".")) & imageTypeNastavite mySlide = Application.ActiveWindow.View.slidemySlide.Export imageName, imageTypeEnd Sub

Spremenite velikost slike, da pokrije celotno stran

1234567891011121314151617181920212223242526 Sub ResizeImageToCoverFullSlide ()Zatemni moj diapozitiv kot diapozitivDim shp As Shape'Spremeni velikost slike na celotno velikost diapozitiva'Spremenite višino in širino prve oblike na trenutnem diapozitivu', da ustreza dimenzijam drsnikaNastavite mySlide = Application.ActiveWindow.View.slideNastavi shp = mySlide.Shapes (1)'''' Dva zgornja stanja zamenjajte z'' naslednjo izjavo, če želite'' razširite trenutno izbrano obliko'' bo prikazalo napako, če ni izbrano nič'Set shp = ActiveWindow.Selection.ShapeRange (1)S shp.LockAspectRatio = Napačno.Height = ActivePresentation.PageSetup.SlideHeight.Width = ActivePresentation.PageSetup.SlideWidth.Levo = 0.Top = 0Končaj sEnd Sub

Zaprite vse tekaške diaprojekcije

Če imate hkrati odprtih več diaprojekcij, jih lahko vse zaprete s spodnjim makrom.

1234567 Sub ExitAllRunningSlideShows ()Naredi SlideShowWindows.Count> 0SlideShowWindows (1) .View.ExitZankaEnd Sub

Avtomatizacija programa PowerPoint iz Excela

Z PowerPointom se lahko povežete tudi z drugimi aplikacijami (kot sta Excel in Word). Kot prvi korak se morate sklicevati na primerek PowerPointa.

Obstajata dva načina - zgodnja vezava in pozna vezava .

Odpri PowerPoint - Zgodnja vezava

V »Zgodnja vezava« morate izrecno nastaviti sklic na »Knjižnico predmetov Microsoft PowerPoint 16« (za MS Office 2022) v VBE (urejevalnik Visual Basic) z možnostjo Orodja-> Sklici.

123 'Zgodnja vezavaZatemni pptApp kot aplikacijoNastavite pptApp = Nova PowerPoint.Application

Odprite PowerPoint - pozna vezava

V aplikaciji „Pozne vezave“ je spremenljivka aplikacije deklarirana kot objekt in motor VBA se med izvajanjem poveže s pravilno aplikacijo.

123 'Pozno zavezujočeZatemni pptApp kot objektNastavite pptApp = CreateObject ("PowerPoint.Application")

Naj bo aplikacija vidna

Ko nastavite referenco na aplikacijo PowperPoint, jo boste morda morali narediti vidno.

1 pptApp.Visible = Res

Ustvari PowerPoint

Z vsemi načini lahko upravljate predstavitve v PowerPointu, opisanem zgoraj v Excelu, tako da zgolj dodate sklic na PowerPoint, ki ste ga ustvarili zgoraj.

Na primer

1 Presentation.Open ("Moja predstavitev.pptx")

ga je treba uporabiti takole

1 pptApp .Presetations.Open ("Moja predstavitev.pptx")

Zaprite aplikacijo

Ko dokončate tisto, kar želite narediti z aplikacijo PowerPoint, jo morate zapreti in referenco sprostiti.

12 pptApp.QuitNastavite pptApp = Nič

Kopirajte iz Excela v PowerPoint

Ta koda bo kopirala obseg iz Excela v PowerPoint:

Opomba: Najpreprosteje je prikazano, kako je mogoče obseg iz Excela kopirati v PowerPoint z uporabo VBA.

12345678910111213141516171819 PodkopijaRangeToPresentation ()'Odprite nov primerek PowerPointNastavite pptApp = CreateObject ("PowerPoint.Application")S programom pptApp'Ustvari novo predstavitevNastavite ppt = .Predstavitve.Dodaj'Dodaj prazen diapozitivNastavi newSlide = ppt.Slides.Add (1, 12) 'ppLayoutBlank = 12'Kopiraj obseg iz aktivnega lista v ExceluActiveSheet.Range ("A1: E10"). Kopiraj'Prilepi v Powerpoint kot slikonewSlide.Shapes.PasteSpecial DataType: = 2 '2 = ppPasteEnhancedMetafile'Preklopi na PowerPoint.AktivirajKončaj sEnd Sub

Pogosta vprašanja o PowerPoint VBA

Kaj so makri v PPT?

Makro je splošen izraz, ki se nanaša na niz programskih navodil, ki avtomatizirajo naloge. Makroi PowerPoint (PPT) avtomatizirajo naloge v PowerPointu z uporabo programskega jezika VBA.

Kako uporabljam VBA v PowerPointu?

Če želite uporabljati VBA v PowerPointu, odprite urejevalnik VBA (ALT + F11 ali Developer> Visual Basic).

Kako ustvarim makro v PowerPointu?

1. Odprite urejevalnik VBA (ALT + F11 ali Razvijalec> Visual Basic)
2. Pojdite na Vstavi> Modul, da ustvarite kodni modul
3. Vnesite „Sub HelloWorld“ in pritisnite Enter
4. V vrstici „Sub HelloWorld“ in „End Sub“ vnesite „MsgBox“ Hello World! ”
5. Ustvarili ste makro!
6. Zdaj pritisnite 'F5', da zaženete makro

Zapisala: Vinamra Chandra

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave