PowerPoint VBA makro piemēri un apmācība

Š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

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave