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