PowerPointi VBA makro näidised ja õpetus

See on täielik juhend PowerPointi automatiseerimiseks VBA (Visual Basic for Applications) makrosid kasutades. Allpool leiate palju kasulikke näiteid.

VBA PDF (tasuta allalaadimine)

Laadige alla meie tasuta Microsoft PowerPoint VBA õpetus! Või VBA õpetused teiste Office'i programmide jaoks!

Lae alla

PowerPoint VBA (makrod) õpetus

Salvesta kui makropõhine esitlus

VBA-koodiga esitlus peaks olema „Salvestatud kui“ PowerPointi makropõhine esitlus (*.pptm)

Lubage lindil vahekaart „Arendaja”

Enne VBA -koodi loomist peaksite lindil lubama vahekaardi Arendaja. Selleks valige Fail -> Valikud, seejärel klõpsake „Kohanda linti” ja märkige parempoolsel paanil vahekaardi „Arendaja” kõrval olev ruut.

Looge PowerPointi makro

See on lihtne näide PowerPointi VBA makro kohta:

1234567891011 Sub SavePresentationAsPDF ()Dim pptName kui stringHämarda PDF -i nimi kui string„Salvestage PowerPoint PDF -failinapptName = ActivePresentation.FullName"Asendage nimes olev PowerPointi faililaiend PDF -failiksPDFName = Vasak (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2End Sub

See salvestab aktiivse esitluse PDF -failina. Iga koodirida teeb järgmist.

  • Loob muutujad PowerPointi nime ja PDF -i nime jaoks
  • Määrab aktiivse esitluse nime muutujale pptName
  • Loob PDF -i täieliku nime
  • Salvestab esitluse PDF -failina

PowerPointi rakendus

Kui VBA -kood töötab PowerPointi esitluses, on PowerPointi rakendus vaikerakendus ja seda saab manipuleerida ilma selgesõnalise viitamata. Looge uus esitlus

Esitluse loomiseks kasutage PowerPointi rakenduse lisamismeetodit.

123 Rakendus. Esitlused. Lisa"või ilma selgesõnalise viitetaEsitlused. Lisa

Avage uus esitlus

Uue ja tühja esitluse avamiseks kasutage rakenduse Lisa meetodit. Esitlused

1 Esitlused. Lisa

Avage olemasolev esitlus

Juba loodud esitluse avamiseks kasutage rakenduse Open.Presentations kollektsiooni

1 Presentations.Open ("Minu esitlus.pptx")

Ülaltoodud kood eeldab, et esitlus asub samas kataloogis koodi sisaldava PowerPointi esitlusega.

Avage ja määrake muutujale

Avatud esitluse peaksite määrama muutujale, et saaksite seda vastavalt oma vajadustele käsitseda.

12 Dim ppt esitlusenaMäära ppt = Presentations.Open ("Minu esitlus.pptx")

Vaadake jaotist Aktiivne esitlus

Kasutage viidet ActivePrentation, et manipuleerida GUI -s aktiivse esitlusega, kui VBA -kood käivitatakse.

12 "Printige ActivePresentationi nimi kohe aknasseSilumine. Printige ActivePresentation.Name

Salvesta praegune esitlus

Allpool olev avaldus salvestab aktiivse esitluse, kui see oli varem salvestatud. Kui seda pole salvestatud, palutakse teil dialoogi „Salvesta nimega”.

1 ActivePresentation.Save

Sulge praegune esitlus

Allolev avaldus sulgeb aktiivse esitluse isegi siis, kui seda pärast viimast muutmist ei salvestatud.

1 ActivePresentation.Sulge

Kasulikud viited

Määrake olemasolev esitlus (nime järgi) muutujale

12 Dim myPresentationByName kui esitlusSet myPresentationByName = Application.Presentations ("Minu esitlus")

Määrake aktiivsele slaidile muutuja

12 Hämarda vooluSlaid slaidinaMäära currentSlide = Application.ActiveWindow.View.Slide

Määrake slaid indeksi järgi muutujale

12 Dim mySlide slaidinaMäära mySlide = ActivePresentation. Slaidid (11)

Slaidide arv

12 Dim slideCount As LongslideCount = ActivePresentation.Slides.Count

Hangi slaidi indeks Praeguse slaidi number

12 Dim currentSlideIndex slaidinacurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndex

Lisage slaidiseansi lõppu tühi slaid

1234567 Dim slideCount As LongHämarda uus slaid slaidinaslideCount = ActivePresentation.Slides.CountMäära newSlide = ActivePresentation.Slides.Add (slideCount + 1, 12)'või kui ppLayoutBlank = 12Määra newSlide = ActivePresentation.Slides.Add (slideCount + 1, ppLayoutBlank)

Lisa slaid pärast praegust slaidi

12345 Hämarda uusSlaid slaidinaDim currentSlideIndex täisarvunacurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndexMäära newSlide = ActivePresentation.Slides.Add (currentSlideIndex, ppLayoutBlank)

Kustuta slaid

1234 Dim currentSlideIndex täisarvunacurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndexActivePresentation.Slaides (currentSlideIndex). Kustuta

Avage konkreetne slaid

12 "See viib teid slaidini number 4Application.ActiveWindow.View.GotoSlide (4)

Liiguta slaid

Saate slaidi vanast asendist uude asendisse liigutada

123456 'Liikuge slaidilt 3 esimesele slaidileHämardage vana positsioon täisarvuna, hämardage uus positsioon täisarvunavana positsioon = 3newPosition = 1ActivePresentation.Slides (oldPosition) .MoveTo toPos: = newPosition

Loe kõik slaidid läbi

Saate teha iga slaidiga midagi või vaadata läbi kõik slaidid, et leida mõned slaidid ja teha midagi koodi kasutamisega;

123456 Dim mySlide kui slaidIga MySlide jaoks ActivePresentation.Slaidides„Tehke midagi muutuja„ mySlide ”osutatud praeguse slaidiga„Silumine. Prindi mySlide. NimiJärgmine slaid

Sirvige kõiki aktiivse slaidi vorme

PowerPointi võimu saab realiseerida, kasutades vormi „Kujundid”. Allolev kood läbib kõiki praegusel slaidil olevaid kujundeid, nii et saate neid soovitud viisil muuta;

123456789 Hämarda vooluSlaid slaidinaDim shp kui ShapeMäära currentSlide = Application.ActiveWindow.View.SlideIga shp jaoks CurrentSlide.Shapes„Tehke midagi muutuja„ shp ”osutatud praeguse kujuga„Näiteks printige kuju nimi kohe aknasseSilumine. Prindi shp. NimiJärgmine shp

Sirvige kõiki slaidide kujundeid

Saate kõik esitluse kujundid läbi vaadata, lisades silmuse kõigi slaidide läbimiseks.

123456789 Hämarda vooluSlaid slaidinaDim shp kui ShapeIga CurrentSlide jaoks ActivePresentation.SlaididesIga shp jaoks CurrentSlide.Shapes„Tehke midagi muutuja„ shp ”osutatud praeguse kujugaSilumine. Prindi shp. NimiJärgmine shpJärgmine praegune slaid

Sirvige aktiivse slaidi kõiki tekstikaste

Tekstikastid on PowerPointi esitlustes kõige sagedamini kasutatav kuju. Kõigist tekstiväljadest saate sirvida, lisades ruudu „Kujutüüp”. TexBoxidel on kujunditüüp määratletud kui VBA konstant msoTextBox (konstandi arvväärtus on 17)

1234567891011 Hämarda vooluSlaid slaidinaDim shp kui ShapeMäära currentSlide = Application.ActiveWindow.View.SlideIga shp jaoks CurrentSlide.Shapes'Kontrollige, kas kuju tüüp on msoTextBoxKui shp.Type = 17 Siis 'msoTextBox = 17"Printige tekstiväljale tekstDebug.Print shp.TextFrame2.TextRange.TextLõpp KuiJärgmine shp

Loe kõikides slaidides läbi kõik tekstikastid

Jällegi saate tutvuda kõigi esitluse tekstikastidega, lisades silmuse kõigi slaidide läbimiseks.

1234567891011 Voolu hämardamine Slide Slide Dim shp kui ShapeIga CurrentSlide jaoks ActivePresentation.SlaididesIga shp jaoks CurrentSlide.Shapes'Kontrollige, kas kuju tüüp on msoTextBoxKui shp.Type = 17 Siis 'msoTextBox = 17„Tehke midagi muutuja„ shp ”tekstikastigaDebug.Print shp.TextFrame2.TextRange.TextLõpp KuiJärgmine shpJärgmine praegune slaid

Kopeeri valitud slaidid uuele PPT esitlusele

Teatud slaidide kopeerimiseks uutele esitlustele valige esmalt soovitud slaidid olemasolevast esitlusest ja seejärel käivitage allolev kood;

123456789101112131415161718 Dim currentPresentation as PresentationHämarda vooluSlaid slaidinaHämardage uus esitlus esitlusena„Salvestage viide praegusele esitluseleSet currentPresentation = Application.ActivePresentation'Salvesta viide praegusele slaidileMäära currentSlide = Application.ActiveWindow.View.Slide"Lisage uus esitlus ja salvestage viiteleMäära NewPresentation = Application.Presentations.Add'Kopeerige valitud slaididValik. Kopeeri'Kleebi see uude esitlusseNewPresentation.Slaides.Paste

Kopeeri aktiivne slaid aktiivse esitluse lõppu

12345 'Kopeeri praegune slaidApplication.ActiveWindow.View.Slide.Copy'Kleebi lõpusActivePresentation.Slaides.Paste

Kasulikud PowerPointi makronäited

Siin on mõned kasulikud makro näited, mis näitavad, kuidas ülesandeid teha. Need näitavad ka eespool kirjeldatud mõisteid.

Muuda slaidiseansi ajal slaidi

1234567891011 Sub ChangeSlideDuringSlideShow ()Dim SlideIndex täisarvunaDim SlideIndexVarem täisarvuna'Muuda praegune slaid slaidiseansi ajal valitud slaidiks 4SlideIndex = 4'Praeguse slaidiseansi akna indeks on SlideShowWindows kollektsioonis 1SlideIndexPrevious = SlideShowWindows (1) .View.CurrentShowPositionSlideShowWindows (1) .View.GotoSlide SlideIndexEnd Sub

Muutke fondi kõigil slaididel kõigis tekstikastides

123456789101112131415 Sub ChangeFontOnAllSlides ()Dim mySlide SlaidinaDim shp As Shape„Muutke kõigi slaidide fondisuurustIga MySlide jaoks ActivePresentation.SlaididesIga shp jaoks MySlide.ShapesKui shp.Type = 17 Siis 'msoTextBox = 17"Muutke fondi suurus 24 -leshp.TextFrame.TextRange.Font.Size = 24Lõpp KuiJärgmine shpJärgmine mySlideEnd Sub

Muutke kõikides tekstikastides väiketäht ülemiselt normaalseks

123456789101112131415 Sub ChangeCaseFromUppertoNormal ()Dim mySlide slaidinaDim shp As Shape„Muutke kõikide slaidide puhul suurtähed tavalisteksIga MySlide jaoks ActivePresentation.SlaididesIga shp jaoks MySlide.ShapesKui shp.Type = 17 Siis 'msoTextBox = 17"Muutke suurtähed tavalisteksshp.TextFrame2.TextRange.Font.Allcaps = ValeLõpp KuiJärgmine shpJärgmine mySlideEnd Sub

Lülita suurtähtede vahetamine ülemise ja tavalise vahel kõigis tekstikastides

12345678910111213141516 Sub ToggleCaseBetweenUpperAndNormal ()Dim mySlide SlaidinaDim shp As Shape'Lülitage kõikide slaidide puhul välja suurtähtede ja tavaliste suurtähtede vahelIga MySlide jaoks ActivePresentation.SlaididesIga shp jaoks MySlide.ShapesKui shp.Type = 17 Siis 'msoTextBox = 17'Vaheta suurtähtede ja tavaliste suurtähtede vahelshp.TextFrame2.TextRange.Font.Allcaps = _Ei shp.TextFrame2.TextRange.Font.AllcapsLõpp KuiJärgmine shpJärgmine mySlideEnd Sub

Eemalda allajoonimine järglaste alt

Tüpograafias on laskumine tähe osa, mis ulatub fondi algjoonest allapoole. Enamiku fondide puhul on järglased reserveeritud väiketähtedele, nagu g, j, q, p, y ja mõnikord ka f.

Teksti allajoonimisel ei tundu see järeltulijate all kena. Siin on kood, mis eemaldab allajoonimise kõikidest sellistest märkidest g, j, p, q ja y kogu esitluses.

1234567891011121314151617181920212223242526 Sub RemoveUnderlineFromDescenders ()Dim mySlide slaidinaDim shp As ShapeHämarda järglaste_loendit stringinaHämar fraas kui stringDim x nii pikk'Eemaldage allajoonised alanejateltdescenders_list = "gjpqy"Iga MySlide jaoks ActivePresentation.SlaididesIga shp jaoks MySlide.ShapesKui shp.Type = 17 Siis 'msoTextBox = 17"Eemaldage tähtedelt" gjpqy "alajoonKoos shp.TextFrame.TextRangefraas = .TeksX = 1 jaoks Len (.Text)Kui InStr (descenders_list, Mid $ (fraas, x, 1))> 0 Siis.Tähemärgid (x, 1). Font.Underline = FalseLõpp KuiJärgmine xLõpetaLõpp KuiJärgmine shpJärgmine mySlideEnd Sub

Eemaldage animatsioonid kõikidelt slaididelt

Kasutage allolevat koodi, et eemaldada kõik esitluses määratud animatsioonid.

123456789101112 Sub RemoveAnimationsFromAllSlides ()Dim mySlide SlaidinaDim i As LongIga MySlide jaoks ActivePresentation.SlaididesI = mySlide.TimeLine.MainSequence.Count kuni 1 samm -1'Eemalda iga animatsioonmySlide.TimeLine.MainSequence.Item (i). KustutaEdasi iJärgmine mySlideEnd Sub

Salvestage esitlus PDF -failina

Aktiivse esitluse saate hõlpsalt PDF -vormingus salvestada.

1234567891011 Sub SavePresentationAsPDF ()Dim pptName kui stringHämarda PDF -i nimi kui string„Salvestage PowerPoint PDF -failinapptName = ActivePresentation.FullName"Asendage nimes olev PowerPointi faililaiend PDF -failiksPDFName = Vasak (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2End Sub

Otsige ja asendage tekst

Teksti saate leida ja asendada kõikide slaidide kõigist tekstikastidest. Pärast otsitava teksti esimest eksemplari (määratletud findWhat abil) peate otsingu käsuga otsima, et leida muid eksemplare, kui neid on.

123456789101112131415161718192021222324252627282930313233 Sub FindAndReplaceText ()Dim mySlide slaidinaDim shp As ShapeDim findWhat As StringHämarda asendamine stringigaDim ShpTxt kui TextRangeDim TmpTxt kui TextRangefindWhat = "šaakal"substitWith = "rebane"'Otsi ja leia ja asendaIga MySlide jaoks ActivePresentation.SlaididesIga shp jaoks MySlide.ShapesKui shp.Type = 17 Siis 'msoTextBox = 17Määrake ShpTxt = shp.TextFrame.TextRangeLeia sõna „Otsi” esimene eksemplar (kui see on olemas)Määra TmpTxt = ShpTxt. Asenda (findWhat, _Asenda mida: = asenda Koos, _Terved sõnad: = tõsi)"Leidke sõna" Otsi "täiendavaid eksemplare (kui see on olemas)Tee, kui mitte TmpTxt pole midagiMäära ShpTxt = ShpTxt.Characters (TmpTxt.Start + TmpTxt.Length, ShpTxt.Length)Määra TmpTxt = ShpTxt. Asenda (findWhat, _Asenda mida: = asenda Koos, _Terved sõnad: = tõsi)LoopLõpp KuiJärgmine shpJärgmine mySlideEnd Sub

Ekspordi slaid pildina

Praeguse slaidi (või mõne muu slaidi) saate eksportida PNG- või JPG- (JPEG) või BMP -kujutisena.

1234567891011121314 AlameksportSlideAsImage ()Dim imageType kui stringDim pptName kui stringHämarda pildiNimi kui stringDim mySlide Slaidina'Ekspordi praegune slaid pildileimageType = "png" 'või jpg või bmppptName = ActivePresentation.FullNameimageName = Vasak (pptName, InStr (pptName, ".")) & imageTypeMäära mySlide = Application.ActiveWindow.View.slidemySlide.Export imageName, imageTypeEnd Sub

Pildi suuruse muutmine slaidi katmiseks

1234567891011121314151617181920212223242526 Sub ResizeImageToCoverFullSlide ()Dim mySlide SlaidinaDim shp As Shape'Muutke pildi suurust slaidi täissuuruses'Muutke praeguse slaidi esimese kuju kõrgust ja laiust', et see sobiks slaidi mõõtmetegaMäära mySlide = Application.ActiveWindow.View.slideMäära shp = mySlide.Shapes (1)'''' Asendage kaks ülaltoodud staatust'' järgmine avaldus, kui soovite'' laiendab parajasti valitud kuju'' annab vea, kui midagi pole valitud'Määra shp = ActiveWindow.Selection.ShapeRange (1)Koos shp.LockAspectRatio = Vale.Height = ActivePresentation.PageSetup.SlideHeight.Width = ActivePresentation.PageSetup.SlideWidth.Vasak = 0. Ülemine = 0LõpetaEnd Sub

Välju kõigist jooksvatest slaidiseanssidest

Kui teil on korraga avatud mitu slaidiseanssi, saate need kõik allpool oleva makro abil sulgeda.

1234567 AlamväljapääsAllRunningSlideShows ()Tehke ajal SlideShowWindows.Count> 0SlideShowWindows (1). Kuva. VäljuLoopEnd Sub

PowerPointi automatiseerimine Excelist

Saate PowerPointiga ühenduse luua ka muude rakenduste kaudu (nt Excel ja Word). Esimese sammuna peate viitama PowerPointi eksemplarile.

Selleks on kaks võimalust - varajane sidumine ja hiline sidumine .

Avage PowerPoint - varajane sidumine

Jaotises „Varajane sidumine” peate VBE-s (Visual Basic Editor) määrama selgesõnaliselt viite „Microsoft PowerPoint 16 objektiraamatukogule” (MS Office 2022 jaoks), kasutades suvandit Tööriistad-> Viited.

123 'Varajane sidumineDim pptApp kui rakendusMäära pptApp = Uus PowerPoint. Rakendus

Avage PowerPoint - hiline sidumine

Jaotises „Late Binding” deklareeritakse rakenduse muutuja objektiks ja VBA mootor ühendub õige rakendusega jooksval ajal.

123 'Hiline sidumineDim pptApp objektinaMäära pptApp = CreateObject ("PowerPoint.Application")

Muutke rakendus nähtavaks

Pärast viite seadistamist rakendusele PowperPoint peate võib -olla selle nähtavaks tegema.

1 pptApp.Visible = Tõsi

Manipuleerige PowerPointi

Saate kasutada kõiki PowerPointi esitluste manipuleerimise meetodeid, mida on kirjeldatud Excelis, lisades lihtsalt ülaltoodud viite PowerPointile.

Näiteks

1 Presentations.Open ("Minu esitlus.pptx")

tuleb kasutada, meeldib see

1 pptApp .Presentations.Open ("Minu esitlus.pptx")

Sulgege rakendus

Kui olete lõpetanud selle, mida soovite PowerPointi rakendusega teha, peate selle sulgema ja viite vabastama.

12 pptApp. LõpetaMäära pptApp = Mitte midagi

Kopeerige Excelist PowerPointi

See kood kopeerib vahemiku Excelist PowerPointi:

Märge: Seda on hoitud võimalikult lihtsana, et näidata, kuidas vahemikku Excelist saab VBA abil PowerPointi kopeerida.

12345678910111213141516171819 Sub copyRangeToPresentation ()'Avage uus PowerPointi eksemplarMäära pptApp = CreateObject ("PowerPoint.Application")Rakendusega pptApp'Loo uus esitlusMäära ppt = .Presentations.Add'Lisa tühi slaidMäära newSlide = ppt.Slides.Add (1, 12) 'ppLayoutBlank = 12'Kopeerige vahemik Exceli aktiivsest lehestActiveSheet.Range ("A1: E10"). Kopeeri'Kleebi Powerpointi pildinanewSlide.Shapes.PasteSpecial DataType: = 2 '2 = ppPasteEnhancedMetafile'Lülitu PowerPointile.AktiveeriLõpetaEnd Sub

PowerPointi VBA KKK -d

Mis on PPT -s makrod?

Makro on üldmõiste, mis viitab programmeerimisjuhiste kogumile, mis automatiseerib ülesandeid. PowerPoint (PPT) Makrod automatiseerivad PowerPointi ülesandeid, kasutades VBA programmeerimiskeelt.

Kuidas kasutada VBA -d PowerPointis?

VBA kasutamiseks PowerPointis avage VBA redaktor (ALT + F11 või arendaja> Visual Basic).

Kuidas luua PowerPointis makro?

1. Avage VBA redaktor (ALT + F11 või arendaja> Visual Basic)
2. Koodmooduli loomiseks avage Lisa> Moodul
3. Tippige „Sub HelloWorld” ja vajutage sisestusklahvi
4. Tippige ridade „Sub HelloWorld” ja „End Sub” vahele „MsgBox„ Hello World! ”
5. Olete loonud makro!
6. Nüüd vajutage makro käivitamiseks klahvi F5

Kirjutas: Vinamra Chandra

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave