Šis ir pilnīgs ceļvedis PowerPoint automatizēšanai, izmantojot VBA (Visual Basic for Applications) makro. Zemāk jūs atradīsit daudz noderīgu piemēru.
VBA PDF (bezmaksas lejupielādes)
Lejupielādējiet mūsu bezmaksas Microsoft PowerPoint VBA apmācību! Vai arī VBA apmācības citām biroja programmām!
Lejupielādēt
PowerPoint VBA (makro) apmācība
Prezentācija Saglabāt kā makro-iespējotu
Prezentācijai ar VBA kodu jābūt “Saglabāta kā” PowerPoint prezentācijai ar makro iespējotu (*.pptm)
Lentē iespējojiet cilni “Izstrādātājs”
Pirms VBA koda izveides lentē jāiespējo cilne Izstrādātājs. Lai to izdarītu, izvēlieties Fails -> Opcijas, pēc tam noklikšķiniet uz Pielāgot lenti un atzīmējiet izvēles rūtiņu blakus cilnei Izstrādātājs labajā rūtī.
Izveidojiet PowerPoint makro
Šis ir vienkāršs PowerPoint VBA makro piemērs:
1234567891011 | Sub SavePresentationAsPDF ()Dim pptName kā virkneDim PDFName kā virkneSaglabājiet PowerPoint kā PDFpptName = ActivePresentation.FullName'Nomainiet PowerPoint faila paplašinājumu nosaukumā uz PDFPDFName = Pa kreisi (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2Beigu apakš |
Tas saglabā aktīvo prezentāciju kā PDF failu. Katra koda rinda veic šādas darbības:
- Izveido mainīgos PowerPoint nosaukumam un PDF nosaukumam
- Piešķir mainīgajam pptName aktīvās prezentācijas nosaukumu
- Izveido pilnu PDF nosaukumu
- Saglabā prezentāciju PDF formātā
PowerPoint lietojumprogramma
Ja PowerPoint prezentācijā darbojas VBA kods, PowerPoint lietojumprogramma ir noklusējuma lietojumprogramma, un ar to var manipulēt bez tiešas atsauces. Izveidojiet jaunu prezentāciju
Lai izveidotu prezentāciju, izmantojiet programmas PowerPoint pievienošanas metodi.
123 | Lietojumprogramma. Prezentācijas. Pievienot"vai bez skaidras atsaucesPrezentācijas. Pievienot |
Atveriet jaunu prezentāciju
Lai atvērtu jaunu un tukšu prezentāciju, izmantojiet lietojumprogrammas Pievienot metodi. Prezentācijas
1 | Prezentācijas. Pievienot |
Atveriet esošu prezentāciju
Lai atvērtu jau izveidotu prezentāciju, izmantojiet lietojumprogrammas Open metodi
1 | Presentations.Open ("Mana prezentācija.pptx") |
Iepriekš minētais kods pieņem, ka prezentācija atrodas tajā pašā direktorijā kā PowerPoint prezentācija, kurā ir kods.
Atvērt un piešķirt mainīgajam
Atvērtajai prezentācijai jāpiešķir mainīgais, lai varētu ar to rīkoties atbilstoši savām prasībām.
12 | Dim ppt kā prezentācijaIestatiet ppt = Presentations.Open ("Mana prezentācija.pptx") |
Skatiet Aktīvā prezentācija
Izmantojiet atsauci ActivePrentation, lai manipulētu ar GUI aktīvo prezentāciju, kad tiek izpildīts VBA kods.
12 | Drukājiet ActivePresentation nosaukumu tūlītējā logāAtkļūdošana. Drukāt ActivePresentation.Name |
Saglabāt pašreizējo prezentāciju
Tālāk esošais paziņojums saglabās aktīvo prezentāciju, ja tā tika saglabāta iepriekš. Ja tas nav saglabāts, jums tiks piedāvāts dialoglodziņš “Saglabāt kā”.
1 | ActivePresentation.Save |
Aizvērt pašreizējo prezentāciju
Tālāk esošais paziņojums aizvērs aktīvo prezentāciju, pat ja tā nebija saglabāta pēc pēdējās rediģēšanas.
1 | ActivePresentation.Close |
Noderīgas atsauces
Piešķirt esošajai prezentācijai (pēc nosaukuma) mainīgo
12 | Dim myPresentationByName kā prezentācijaSet myPresentationByName = Application.Presentations ("Mana prezentācija") |
Piešķirt mainīgajam aktīvo slaidu
12 | Slāpēt kā slaiduIestatīt currentSlide = Application.ActiveWindow.View.Slide |
Piešķirt slaidu pēc indeksa mainīgajam
12 | Dim mySlide kā SlideIestatīt mySlide = ActivePresentation. Slaidi (11) |
Skaitīt slaidu skaitu
12 | Dim slideCount As LongslideCount = ActivePresentation.Slides.Count |
Iegūt slaidu indeksa pašreizējā slaida numuru
12 | Blāvēt pašreizējoSlideIndex kā slaiducurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndex |
Slaidrādes beigās pievienojiet tukšu slaidu
1234567 | Dim slideCount As LongAptumšot jaunu slīdu kā slaiduslideCount = ActivePresentation.Slides.CountIestatīt newSlide = ActivePresentation.Slides.Add (slideCount + 1, 12)"vai kā ppLayoutBlank = 12Iestatīt newSlide = ActivePresentation.Slides.Add (slideCount + 1, ppLayoutBlank) |
Pievienojiet slaidu aiz pašreizējā slaida
12345 | Dim newSlide As SlideDim currentSlideIndex kā vesels skaitliscurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndexIestatīt newSlide = ActivePresentation.Slides.Add (currentSlideIndex, ppLayoutBlank) |
Slaida dzēšana
1234 | Dim currentSlideIndex kā vesels skaitliscurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndexActivePresentation.Slaides (currentSlideIndex). Dzēst |
Dodieties uz konkrētu slaidu
12 | 'Tas aizvedīs jūs uz 4. slaiduApplication.ActiveWindow.View.GotoSlide (4) |
Pārvietot slaidu
Slaidu var pārvietot no vecās pozīcijas uz jauno
123456 | “Pāriet no 3. slaida uz pirmo slaiduAptumšot veco pozīciju kā veselu skaitli, aptumšot jaunu pozīciju kā veselu skaitlioldPosition = 3newPosition = 1ActivePresentation.Slides (oldPosition) .MoveTo toPos: = newPosition |
Izslēgt visus slaidus
Jūs varat kaut ko darīt ar katru slaidu vai iet cauri visiem slaidiem, lai atrastu dažus slaidus un kaut ko darītu, izmantojot kodu;
123456 | Dim mySlide kā SlidePar katru mySlide ActivePresentation.Slaids“Dariet kaut ko ar pašreizējo slaidu, kas minēts mainīgajā“ mySlide ”“Atkļūdot. Izdrukāt mySlide. NosaukumsNākamais slaids |
Apmeklējiet visas aktīvā slaida formas
PowerPoint spēku var realizēt, izmantojot “Shapes”. Tālāk esošais kods izceļ visas pašreizējā slaida formas, lai jūs varētu ar tām manipulēt, kā vēlaties;
123456789 | Slāpēt kā slaiduDim shp kā ShapeIestatīt currentSlide = Application.ActiveWindow.View.SlidePar katru shp CurrentSlide.Shapes“Dariet kaut ko ar pašreizējo formu, kas minēta mainīgajā“ shp ”'Piemēram, tūlītējā logā izdrukājiet formas nosaukumuAtkļūdot. Drukāt shp. NosaukumsNākamais shp |
Pārskatiet visas formas visos slaidos
Varat aplūkot visas prezentācijas formas, pievienojot cilpu, lai iet cauri visiem slaidiem.
123456789 | Slāpēt kā slaiduDim shp kā ShapePar katru currentSlide ActivePresentation.SlaidsPar katru shp CurrentSlide.Shapes“Dariet kaut ko ar pašreizējo formu, kas minēta mainīgajā“ shp ”Atkļūdot. Drukāt shp. NosaukumsNākamais shpNākamais pašreizējais slīds |
Skatiet visas aktīvā slaida teksta kastes
TextBoxes ir visbiežāk izmantotā forma PowerPoint prezentācijās. Varat aplūkot visas teksta kastes, pievienojot izvēles rūtiņu “Formas tips”. TexBoxes formas tips ir definēts kā VBA konstante msoTextBox (konstantes skaitliskā vērtība ir 17)
1234567891011 | Slāpēt kā slaiduDim shp kā ShapeIestatīt currentSlide = Application.ActiveWindow.View.SlidePar katru shp CurrentSlide.Shapes"Pārbaudiet, vai formas veids ir msoTextBoxJa shp.Type = 17 Tad 'msoTextBox = 17Drukājiet tekstu lodziņā TextBoxDebug.Print shp.TextFrame2.TextRange.TextBeigas JaNākamais shp |
Skatiet visas teksta kastes visos slaidos
Atkal varat aplūkot visas prezentācijas tekstlodziņus, pievienojot cilpu, lai iet cauri visiem slaidiem.
1234567891011 | Slīdēt kā slaidu Dim shp kā formuPar katru currentSlide ActivePresentation.SlaidsPar katru shp CurrentSlide.Shapes"Pārbaudiet, vai formas veids ir msoTextBoxJa shp.Type = 17 Tad 'msoTextBox = 17“Dariet kaut ko ar teksta lodziņu, kas minēts mainīgajā“ shp ”Debug.Print shp.TextFrame2.TextRange.TextBeigas JaNākamais shpNākamais pašreizējaisSlaids |
Kopēt atlasītos slaidus jaunā PPT prezentācijā
Lai kopētu noteiktus slaidus uz jaunām prezentācijām, vispirms esošajā prezentācijā atlasiet vēlamos slaidus un pēc tam palaidiet zemāk esošo kodu;
123456789101112131415161718 | Dim currentPresentation as PresentationSlāpēt kā slaiduDim newPresentation as Presentation'Saglabāt atsauci uz pašreizējo prezentācijuIestatīt currentPresentation = Application.ActivePresentation'Saglabāt atsauci uz pašreizējo slaiduIestatīt currentSlide = Application.ActiveWindow.View.Slide"Pievienojiet jaunu prezentāciju un saglabājiet to atsaucēIestatīt NewPresentation = Application.Presentations.Add'Kopēt atlasītos slaidusAtlase. Kopēt'Ielīmējiet to jaunā prezentācijāNewPresentation.Slaides.Paste |
Kopēt aktīvo slaidu līdz aktīvās prezentācijas beigām
12345 | 'Kopēt pašreizējo slaiduApplication.ActiveWindow.View.Slide.Copy'Ielīmējiet beigāsActivePresentation.Slaides.Paste |
Noderīgi PowerPoint makro piemēri
Šeit ir daži noderīgi makro piemēri, kas parāda, kā veikt uzdevumus. Tie arī parādīs iepriekš aprakstītos jēdzienus.
Slaidrādes laikā mainīt slaidu
1234567891011 | Sub ChangeSlideDuringSlideShow ()Dim SlideIndex kā vesels skaitlisDim SlideIndex Iepriekšējais kā vesels skaitlis'Slaidrādes laikā mainiet pašreizējo slaidu uz izvēlēto 4. slaiduSlideIndex = 4'Pašreizējā slaidrādes loga rādītājs SlideShowWindows kolekcijā ir 1SlideIndexPrevious = SlideShowWindows (1). View.CurrentShowPositionSlideShowWindows (1). View.GotoSlide SlideIndexBeigu apakš |
Mainiet fontu visos slaidos visās teksta kastēs
123456789101112131415 | Sub ChangeFontOnAllSlides ()Dim mySlide Kā slaiduDim shp kā formaMainīt fonta lielumu visos slaidosPar katru mySlide ActivePresentation.SlaidsPar katru shp In MySlide.ShapesJa shp.Type = 17 Tad 'msoTextBox = 17"Mainīt fonta lielumu uz 24shp.TextFrame.TextRange.Font.Size = 24Beigas JaNākamais shpNākamais mySlideBeigu apakš |
Mainiet reģistru no augšējās uz parasto visās teksta kastēs
123456789101112131415 | Sub ChangeCaseFromUppertoNormal ()Dim mySlide Kā slaiduDim shp kā forma'Mainīt no lielajiem burtiem uz parastajiem burtiem visiem slaidiemPar katru mySlide ActivePresentation.SlaidsPar katru shp In MySlide.ShapesJa shp.Type = 17 Tad 'msoTextBox = 17'Mainiet lielos burtus uz parastajiem burtiemshp.TextFrame2.TextRange.Font.Allcaps = NepareiziBeigas JaNākamais shpNākamais mySlideBeigu apakš |
Pārslēgt reģistru starp augšējo un parasto visās tekstlodziņās
12345678910111213141516 | Sub ToggleCaseBetweenUpperAndNormal ()Dim mySlide Kā slaiduDim shp kā forma'Pārslēdzieties starp lielajiem un parastajiem burtiem visiem slaidiemKatram mySlide ActivePresentation.SlaidsPar katru shp In MySlide.ShapesJa shp.Type = 17 Tad 'msoTextBox = 17'Pārslēgties starp lielajiem un parastajiem burtiemshp.TextFrame2.TextRange.Font.Allcaps = _Nav shp.TextFrame2.TextRange.Font.AllcapsBeigas JaNākamais shpNākamais mySlideBeigu apakš |
Noņemt pasvītrojumu no pēctečiem
Tipogrāfijā nolaišanās ir burta daļa, kas stiepjas zem fonta bāzes līnijas. Lielākajā daļā fontu pēcteči ir rezervēti mazajiem burtiem, piemēram, g, j, q, p, y un dažreiz f.
Pasvītrojot tekstu, tas neizskatās jauki pēc pēctečiem. Šeit ir kods, lai noņemtu pasvītrojumu no visām šādām rakstzīmēm g, j, p, q un y visā prezentācijā.
1234567891011121314151617181920212223242526 | Sub RemoveUnderlineFromDescenders ()Dim mySlide Kā slaiduDim shp kā formaDim descenders_list kā virkneBlāva frāze kā virkneDim x tik ilgi'Noņemiet pasvītrojumus no pēcnācējiemdescenders_list = "gjpqy"Par katru mySlide ActivePresentation.SlaidsPar katru shp In MySlide.ShapesJa shp.Type = 17 Tad 'msoTextBox = 17Noņemt pasvītrojumu no burtiem "gjpqy"Ar shp.TextFrame.TextRangefrāze = .TekstsX = 1 līdz Len (.Text)Ja InStr (descenders_list, Mid $ (frāze, x, 1))> 0 Tad. Rakstzīmes (x, 1). Fonts. Pasvītrojums = NepareizsBeigas JaNākamais xBeigt arBeigas JaNākamais shpNākamais mySlideBeigu apakš |
Animāciju noņemšana no visiem slaidiem
Izmantojiet zemāk esošo kodu, lai noņemtu visas prezentācijā iestatītās animācijas.
123456789101112 | Sub RemoveAnimationsFromAllSlides ()Dim mySlide Kā slaiduDim un tik ilgiKatram mySlide ActivePresentation.SlaidsI = mySlide.TimeLine.MainSequence.Count līdz 1 1. darbībai'Noņemt katru animācijumySlide.TimeLine.MainSequence.Item (i). DzēstTālāk iNākamais mySlideBeigu apakš |
Saglabājiet prezentāciju kā PDF
Jūs varat viegli saglabāt aktīvo prezentāciju PDF formātā.
1234567891011 | Sub SavePresentationAsPDF ()Dim pptName kā virkneDim PDFName kā virkneSaglabājiet PowerPoint kā PDFpptName = ActivePresentation.FullName'Nomainiet PowerPoint faila paplašinājumu nosaukumā uz PDFPDFName = Pa kreisi (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2Beigu apakš |
Atrodiet un nomainiet tekstu
Tekstu var atrast un aizstāt visu slaidu tekstlodziņos. Pēc pirmā teksta gadījuma, kuru vēlaties atrast (definēts ar findWhat), jums ir jāatkārto komanda Find, lai atrastu citus gadījumus, ja tādi ir.
123456789101112131415161718192021222324252627282930313233 | Sub FindAndReplaceText ()Dim mySlide Kā slaiduDim shp kā formaDim findWhat As StringDim aizstāt ar kā virkniDim ShpTxt kā TextRangeDim TmpTxt kā TextRangefindWhat = "šakālis"aizstāt ar = "lapsa"'Atrast un atrast un aizstātKatram mySlide ActivePresentation.SlaidsPar katru shp In MySlide.ShapesJa shp.Type = 17 Tad 'msoTextBox = 17Iestatiet ShpTxt = shp.TextFrame.TextRange“Atrast vārda“ Atrast ”pirmo instanci (ja tāds ir)Iestatiet TmpTxt = ShpTxt. Aizstāt (findWhat, _Aizstāt ko: = aizstāt ar, _WholeWords: = True)"Atrodiet papildu vārda" Atrast "gadījumus (ja tādi ir)Darīt, kamēr nav TmpTxt nav nekasIestatiet ShpTxt = ShpTxt.Characters (TmpTxt.Start + TmpTxt.Length, ShpTxt.Length)Iestatiet TmpTxt = ShpTxt. Aizstāt (findWhat, _Aizstāt ko: = aizstāt ar, _WholeWords: = True)CilpaBeigas JaNākamais shpNākamais mySlideBeigu apakš |
Eksportēt slaidu kā attēlu
Jūs varat eksportēt pašreizējo slaidu (vai jebkuru citu slaidu) kā PNG vai JPG (JPEG) vai BMP attēlu.
1234567891011121314 | Sub ExportSlideAsImage ()Dim imageType kā virkneDim pptName kā virkneDim dimName kā virkneDim mySlide Kā slaidu'Eksportēt pašreizējo slaidu uz attēluimageType = "png" 'vai jpg vai bmppptName = ActivePresentation.FullNameimageName = Pa kreisi (pptName, InStr (pptName, ".")) & imageTypeIestatiet mySlide = Application.ActiveWindow.View.slidemySlide.Export imageName, imageTypeBeigu apakš |
Mainīt attēla izmēru, lai tas aptvertu visu slaidu
1234567891011121314151617181920212223242526 | Sub ResizeImageToCoverFullSlide ()Dim mySlide Kā slaiduDim shp kā forma'Mainīt attēla izmēru līdz pilnam slaida izmēram'Mainiet pašreizējās slaida pirmās formas augstumu un platumu"lai atbilstu slaida izmēriemIestatiet mySlide = Application.ActiveWindow.View.slideIestatiet shp = mySlide.Shapes (1)'''' Aizstājiet divus iepriekš minētos statemetus ar'' šādu paziņojumu, ja vēlaties'' paplašināt pašlaik izvēlēto formu'' parādīs kļūdu, ja nekas netiks atlasīts"Iestatīt shp = ActiveWindow.Selection.ShapeRange (1)Ar shp.LockAspectRatio = Nepareizi.Height = ActivePresentation.PageSetup.SlideHeight.Width = ActivePresentation.PageSetup.SlideWidth. Pa kreisi = 0. Augšā = 0Beigt arBeigu apakš |
Iziet no visām slaidrādēm
Ja vienlaikus ir atvērtas vairākas slaidrādes, varat tās aizvērt, izmantojot tālāk norādīto makro.
1234567 | Sub ExitAllRunningSlideShows ()Darīt, kamēr SlideShowWindows.Count> 0SlideShowWindows (1). Skatīt. IzietCilpaBeigu apakš |
PowerPoint automatizēšana no Excel
Varat arī izveidot savienojumu ar PowerPoint, izmantojot citas lietojumprogrammas (piemēram, Excel un Word). Kā pirmais solis jums ir jāatsaucas uz PowerPoint gadījumu.
Ir divi veidi, kā to izdarīt - agrīna iesiešana un vēlu iesiešana .
Atveriet PowerPoint - agrīnā iesiešana
Sadaļā “Agrīnā iesiešana” VBE (Visual Basic Editor) ir skaidri jāiestata atsauce uz “Microsoft PowerPoint 16 objektu bibliotēku” (MS Office 2022), izmantojot opciju Tools-> References.
123 | 'Agrīna iesiešanaDim pptApp kā lietojumprogrammaIestatiet pptApp = New PowerPoint.Application |
Atveriet PowerPoint - Late Binding
Sadaļā “Late Binding” lietojumprogrammas mainīgais tiek deklarēts kā objekts, un VBA dzinējs izpildes laikā izveido savienojumu ar pareizo lietojumprogrammu.
123 | 'Vēlā iesiešanaDim pptApp kā objektsIestatīt pptApp = CreateObject ("PowerPoint.Application") |
Padariet lietojumprogrammu redzamu
Pēc atsauces iestatīšanas uz lietojumprogrammu PowperPoint, iespējams, vajadzēs to padarīt redzamu.
1 | pptApp.Visible = True |
Manipulēt PowerPoint
Varat izmantot visas metodes, lai manipulētu ar prezentācijām no PowerPoint, kas aprakstītas iepriekš programmā Excel, vienkārši pievienojot atsauci uz jūsu izveidoto PowerPoint.
Piemēram
1 | Presentations.Open ("Mana prezentācija.pptx") |
jāizmanto šis patika
1 | pptApp .Presentations.Open ("Mana prezentācija.pptx") |
Aizveriet lietojumprogrammu
Kad esat pabeidzis to, ko vēlējāties darīt ar lietojumprogrammu PowerPoint, tā ir jāaizver un jāatbrīvo atsauce.
12 | pptApp. IzietIestatīt pptApp = Nekas |
Kopēt no Excel uz PowerPoint
Šis kods kopēs diapazonu no Excel uz PowerPoint:
Piezīme: Ir saglabāts pēc iespējas vienkāršāks, lai parādītu, kā diapazonu no Excel var kopēt uz PowerPoint, izmantojot VBA.
12345678910111213141516171819 | Sub copyRangeToPresentation ()'Atveriet jaunu PowerPoint instanciIestatīt pptApp = CreateObject ("PowerPoint.Application")Ar pptApp'Izveidojiet jaunu prezentācijuIestatiet ppt = .Presentations.Add'Pievienojiet tukšu slaiduIestatīt newSlide = ppt.Slides.Add (1, 12) 'ppLayoutBlank = 12Kopēt diapazonu no aktīvās lapas programmā ExcelActiveSheet.Range ("A1: E10"). Kopēt'Ielīmējiet Powerpoint kā attēlunewSlide.Shapes.PasteSpecial DataType: = 2 '2 = ppPasteEnhancedMetafile'Pārslēdzieties uz PowerPoint.AktivizētBeigt arBeigu apakš |
Bieži uzdotie jautājumi par PowerPoint VBA
Kas ir makro PPT?
Makro ir vispārīgs termins, kas attiecas uz programmēšanas instrukciju kopumu, kas automatizē uzdevumus. PowerPoint (PPT) makro automatizē uzdevumus programmā PowerPoint, izmantojot VBA programmēšanas valodu.
Kā lietot VBA programmā PowerPoint?
Lai izmantotu VBA programmā PowerPoint, atveriet VBA redaktoru (ALT + F11 vai Izstrādātājs> Visual Basic).
Kā izveidot makro programmā PowerPoint?
1. Atveriet VBA redaktoru (ALT + F11 vai izstrādātājs> Visual Basic)
2. Lai izveidotu koda moduli, dodieties uz Ievietot> Moduļi
3. Ierakstiet “Sub HelloWorld” un nospiediet taustiņu Enter
4. Starp rindām “Sub HelloWorld” un “End Sub” ierakstiet “MsgBox“ Hello World! ”
5. Jūs esat izveidojis makro!
6. Tagad nospiediet “F5”, lai palaistu makro
Autors: Vinamra Čandra