PowerPoint VBA -esimerkit ja opetusohjelma

Tämä on täydellinen opas PowerPointin automatisointiin VBA (Visual Basic for Applications) -makrojen avulla. Alta löydät monia hyödyllisiä esimerkkejä.

VBA PDF (ilmaiset lataukset)

Lataa ilmainen Microsoft PowerPoint VBA -opetusohjelma! Tai VBA -oppaita muille Office -ohjelmille!

ladata

PowerPoint VBA (makrot) -opetusohjelma

Tallenna makro-yhteensopivana esityksenä

VBA-koodilla varustetun esityksen tulee olla Tallennettu nimellä PowerPoint-makro-esitys (*.pptm)

Ota Kehittäjä -välilehti käyttöön nauhassa

Ota Kehittäjä -välilehti käyttöön valintanauhassa ennen VBA -koodin luomista. Voit tehdä tämän valitsemalla Tiedosto -> Asetukset ja napsauttamalla sitten Muokkaa valintanauhaa ja valitsemalla oikeanpuoleisen ruudun Kehittäjä -välilehden vieressä olevan valintaruudun.

Luo PowerPoint -makro

Tämä on yksinkertainen esimerkki PowerPoint VBA -makrosta:

1234567891011 Tallenna esitysAsPDF ()Dim pptName kuin merkkijonoDim PDFName As StringTallenna PowerPoint PDF -tiedostonapptName = ActivePresentation.FullName'Korvaa nimessä oleva PowerPoint -tiedostopääte PDF -muotoonPDFName = Vasen (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2End Sub

Se tallentaa aktiivisen esityksen PDF -tiedostona. Jokainen koodirivi toimii seuraavasti:

  • Luo muuttujia PowerPoint -nimelle ja PDF -nimelle
  • Määrittää aktiivisen esityksen nimen pptName -muuttujalle
  • Luo koko PDF -nimen
  • Tallentaa esityksen PDF -tiedostona

PowerPoint -sovellus

Kun VBA -koodi on käynnissä PowerPoint -esityksessä, PowerPoint -sovellus on oletussovellus, ja sitä voidaan käsitellä ilman nimenomaista viittausta. Luo uusi esitys

Voit luoda esityksen käyttämällä PowerPoint -sovelluksen Lisää -menetelmää.

123 Sovellus Esitykset Lisää'tai ilman nimenomaista viittaustaEsitykset.Lisää

Avaa uusi esitys

Avaa uusi ja tyhjä esitys käyttämällä Add -sovellusta

1 Esitykset.Lisää

Avaa olemassa oleva esitys

Voit avata jo luomasi esityksen käyttämällä Open Application -menetelmää

1 Presentations.Open ("Oma esitys.pptx")

Yllä oleva koodi olettaa, että esitys on samassa hakemistossa kuin koodin sisältävä PowerPoint -esitys.

Avaa ja määritä muuttujaan

Sinun tulee liittää avaamasi esitys muuttujaan, jotta voit muokata sitä vaatimustesi mukaisesti.

12 Dim ppt esityksenäAseta ppt = Presentations.Open ("Oma esitys.pptx")

Katso Aktiivinen esitys

Käytä viitettä ActivePrentation manipuloidaksesi GUI: ssa aktiivista esitystä, kun VBA -koodi suoritetaan.

12 'Tulosta ActivePresentation -nimi välittömään ikkunaanDebug.Print ActivePresentation.Name

Tallenna nykyinen esitys

Alla oleva lausunto tallentaa aktiivisen esityksen, jos se on tallennettu aiemmin. Jos sitä ei ole tallennettu, sinua kehotetaan näyttämään Tallenna nimellä -valintaikkuna.

1 ActivePresentation.Save

Sulje nykyinen esitys

Alla oleva lause sulkee aktiivisen esityksen, vaikka sitä ei olisi tallennettu edellisen muokkauksen jälkeen.

1 ActivePresentation.Sulje

Hyödyllisiä viitteitä

Määritä olemassa oleva esitys (nimellä) muuttujalle

12 Dim myPresentationByName As EsitysAseta myPresentationByName = Application.Presentations ("Oma esitykseni")

Määritä aktiivinen dia muuttujaan

12 Himmennä virtaa Dia liukumanaAseta currentSlide = Application.ActiveWindow.View.Slide

Määritä dia indeksin mukaan muuttujaan

12 Himmennä mySlide diaksiAseta mySlide = ActivePresentation.Dias (11)

Laske diojen määrä

12 Dim slideCount As LongslideCount = ActivePresentation.Slides.Count

Hae diahakemisto Nykyisen dian numero

12 Himmennä nykyinen SlideIndex DianäcurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndex

Lisää tyhjä dia diaesityksen loppuun

1234567 Dim slideCount As LongHimmennä uusi dia diaksislideCount = ActivePresentation.Slides.CountAseta newSlide = ActivePresentation.Slides.Add (slideCount + 1, 12)'tai ppLayoutBlank = 12Aseta newSlide = ActivePresentation.Slides.Add (slideCount + 1, ppLayoutBlank)

Lisää dia nykyisen dian jälkeen

12345 Dim newSlide As DiaHimmennä currentSlideIndex kokonaislukunacurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndexAseta newSlide = ActivePresentation.Slides.Add (currentSlideIndex, ppLayoutBlank)

Poista dia

1234 Himmennä currentSlideIndex kokonaislukunacurrentSlideIndex = Application.ActiveWindow.View.Slide.SlideIndexActivePresentation.Slides (currentSlideIndex) .Poista

Siirry tiettyyn diaan

12 'Tämä vie sinut diaan 4Application.ActiveWindow.View.GotoSlide (4)

Siirrä dia

Voit siirtää dian vanhasta paikasta uuteen paikkaan

123456 'Siirry diasta 3 ensimmäiseen diaanHimmennä oldPosition kokonaislukuna, himmentä newPosition kokonaislukunaoldPosition = 3newPosition = 1ActivePresentation.Slides (oldPosition) .MoveTo toPos: = newPosition

Selaa kaikki diat läpi

Voit tehdä jotain jokaisella dialla tai käydä läpi kaikki diat löytääksesi muutaman dian ja tehdä jotain koodin käyttämisellä.

123456 Himmennä mySlide diaksiJokaiselle mySlide ActivePresentation.Slides -palvelussa'Tee jotain nykyisellä dialla, johon viitataan muuttujassa' mySlide ''Virheenkorjaus, Tulosta mySlide.NameSeuraava dia

Käy läpi kaikki aktiivisen dian muodot

PowerPointin voima voidaan toteuttaa käyttämällä muotoja. Alla oleva koodi kulkee läpi kaikki nykyisen dian muodot, jotta voit muokata niitä haluamallasi tavalla;

123456789 Himmennä virtaa Slide diaDim shp kuin muotoAseta currentSlide = Application.ActiveWindow.View.SlideJokaiselle shp: lle currentSlide.Shapes'Tee jotain nykyisellä muodolla, johon viitataan muuttujassa' shp ''Tulosta esimerkiksi muodon nimi Välitön -ikkunaanVirheenkorjaus Tulosta shp.NameSeuraava shp

Selaa kaikki muodot kaikissa dioissa

Voit kiertää kaikki esityksen muodot lisäämällä silmukan kaikkien diojen läpi.

123456789 Himmennä virtaa Slide diaDim shp kuin muotoJokaiselle CurrentSlide ActivePresentation.Slides -palvelussaJokaiselle shp: lle currentSlide.Shapes'Tee jotain nykyisellä muodolla, johon viitataan muuttujassa' shp 'Virheenkorjaus Tulosta shp.NameSeuraava shpSeuraava nykyinen dia

Selaa kaikki Active Sliden tekstikentät läpi

TextBoxet ovat useimmin käytetty muoto PowerPoint -esityksissä. Voit selata kaikkia tekstiruutuja lisäämällä Shape Type -valintaruudun. TexBoxien muoto on määritelty VBA -vakiona msoTextBox (vakion numeerinen arvo on 17)

1234567891011 Himmennä virtaa Slide diaDim shp kuin muotoAseta currentSlide = Application.ActiveWindow.View.SlideJokaiselle shp: lle currentSlide.Shapes'Tarkista, onko muodon tyyppi msoTextBoxJos shp.Type = 17 Sitten 'msoTextBox = 17'Tulosta teksti TextBoxissaDebug.Print shp.TextFrame2.TextRange.TextLoppu JosSeuraava shp

Selaa kaikkia tekstikenttiä kaikissa dioissa

Jälleen voit selata kaikkia esityksen tekstiruutuja lisäämällä silmukan kaikkien diojen läpi.

1234567891011 Himmennä virtaa Slide Slide Dim shp muodossaJokaiselle CurrentSlide ActivePresentation.Slides -palvelussaJokaiselle shp: lle currentSlide.Shapes'Tarkista, onko muodon tyyppi msoTextBoxJos shp.Type = 17 Sitten 'msoTextBox = 17'Tee jotain muuttujassa' shp 'tarkoitetun TextBoxin avullaDebug.Print shp.TextFrame2.TextRange.TextLoppu JosSeuraava shpSeuraava nykyinen dia

Kopioi valitut diat uuteen PPT -esitykseen

Jos haluat kopioida tietyt diat uuteen esitykseen, valitse ensin haluamasi diat olemassa olevasta esityksestä ja suorita sitten alla oleva koodi;

123456789101112131415161718 Himmennä nykyinen esitys esityksenäHimmennä virtaa Slide diaHimmennä uusi esitys esityksenä'Tallenna viittaus nykyiseen esitykseenAseta currentPresentation = Application.ActivePresentation'Tallenna viittaus nykyiseen diaanAseta currentSlide = Application.ActiveWindow.View.Slide'Lisää uusi esitys ja tallenna viitteeseenAseta NewPresentation = Application.Presentations.Add'Kopioi valitut diatValinta KopioiLiitä se uuteen esitykseenNewPresentation.Slides.Paste

Kopioi aktiivinen dia aktiivisen esityksen loppuun

12345 'Kopioi nykyinen diaApplication.ActiveWindow.View.Dia.Copy'Liitä lopussaActivePresentation.Slides.Paste

Hyödyllisiä PowerPoint -makroesimerkkejä

Tässä on muutamia hyödyllisiä makroesimerkkejä tehtävien suorittamisesta. Ne osoittavat myös edellä kuvatut käsitteet.

Vaihda dia diaesityksen aikana

1234567891011 Sub ChangeSlideDuringSlideShow ()Dim SlideIndex kokonaislukunaDim SlideIndexEdellinen kokonaislukuna'Vaihda nykyinen dia valittuun diaan 4 diaesityksen aikanaSlideIndex = 4'Nykyisen kuvaesityksen ikkuna on 1 SlideShowWindows -kokoelmassaSlideIndexPrevious = SlideShowWindows (1) .View.CurrentShowPositionSlideShowWindows (1) .View.GotoSlide SlideIndexEnd Sub

Vaihda fonttia kaikissa dioissa kaikissa tekstikentissä

123456789101112131415 Sub ChangeFontOnAllSlides ()Dim mySlide As diaDim shp kuten muoto'Muuta fonttikokoa kaikissa dioissaJokaiselle mySlide ActivePresentation.Slides -palvelussaJokaiselle shp: lle MySlide.ShapesissaJos shp.Type = 17 Sitten 'msoTextBox = 17Muuta kirjasinkoko 24: ksishp.TextFrame.TextRange.Font.Size = 24Loppu JosSeuraava shpSeuraava mySlideEnd Sub

Vaihda kirjain ylimmästä normaaliksi kaikissa tekstikentissä

123456789101112131415 Sub ChangeCaseFromUppertoNormal ()Dim mySlide As diaDim shp kuten muoto'Vaihda isoista kirjaimista normaalikokoisiksi kaikille dioilleJokaiselle mySlide ActivePresentation.Slides -palvelussaJokaiselle shp: lle MySlide.ShapesissaJos shp.Type = 17 Sitten 'msoTextBox = 17'Vaihda isot kirjaimet normaaliksishp.TextFrame2.TextRange.Font.Allcaps = VääräLoppu JosSeuraava shpSeuraava mySlideEnd Sub

Vaihda kirjain ylemmän ja normaalin välillä kaikissa tekstikentissä

12345678910111213141516 Sub ToggleCaseBetweenUpperAndNormal ()Dim mySlide As diaDim shp kuten muoto'Vaihda suurten ja tavallisten kirjainten välillä kaikille dioilleJokaiselle mySlide ActivePresentation.Slides -palvelussaJokaiselle shp: lle MySlide.ShapesissaJos shp.Type = 17 Sitten 'msoTextBox = 17'Vaihda isojen ja tavallisten kirjainten välilläshp.TextFrame2.TextRange.Font.Allcaps = _Ei shp.TextFrame2.TextRange.Font.AllcapsLoppu JosSeuraava shpSeuraava mySlideEnd Sub

Poista Underline Descendersista

Typografiassa laskeva on kirjaimen osa, joka ulottuu fontin perusviivan alapuolelle. Useimmissa kirjasimissa jälkeläiset on varattu pienille kirjaimille, kuten g, j, q, p, y ja joskus f.

Kun alleviivataan tekstiä, se ei näytä hyvältä jälkeläisten alla. Tässä on koodi, jolla poistetaan alleviivaus kaikista tällaisista merkeistä g, j, p, q ja y koko esityksessä.

1234567891011121314151617181920212223242526 Sub RemoveUnderlineFromDescenders ()Dim mySlide As diaDim shp kuten muotoDim descenders_list Himmennä merkkijononaHämärä lause merkkijononaDim x niin pitkä'Poista alleviivatut jälkeläisetdescenders_list = "gjpqy"Jokaiselle mySlide ActivePresentation.Slides -palvelussaJokaiselle shp: lle MySlide.ShapesissaJos shp.Type = 17 Sitten 'msoTextBox = 17Poista alleviivaus kirjaimista "gjpqy"Sisältää shp.TextFrame.TextRangelause = .tekstiX = 1 Lenille (.teksti)Jos InStr (descenders_list, Mid $ (fraasi, x, 1))> 0 Sitten.Merkit (x, 1) .Font.Underline = FalseLoppu JosSeuraava xLopetaLoppu JosSeuraava shpSeuraava mySlideEnd Sub

Poista animaatiot kaikista dioista

Käytä alla olevaa koodia poistaaksesi kaikki esityksessä asetetut animaatiot.

123456789101112 Sub RemoveAnimationsFromAllSlides ()Dim mySlide As diaDim niin kauanJokaiselle mySlide ActivePresentation.Slides -palvelussaSillä i = mySlide.TimeLine.MainSequence.Count To 1 Step -1'Poista jokainen animaatiomySlide.TimeLine.MainSequence.Item (i) .DeleteSeuraavaksi minäSeuraava mySlideEnd Sub

Tallenna esitys PDF -tiedostona

Voit tallentaa aktiivisen esityksen helposti PDF -muodossa.

1234567891011 Sub SavePresentationAsPDF ()Dim pptName kuin merkkijonoDim PDFName As StringTallenna PowerPoint PDF -tiedostonapptName = ActivePresentation.FullName'Korvaa nimessä oleva PowerPoint -tiedostopääte PDF -muotoonPDFName = Vasen (pptName, InStr (pptName, ".")) & "Pdf"ActivePresentation.ExportAsFixedFormat PDFName, 2 'ppFixedFormatTypePDF = 2End Sub

Etsi ja korvaa teksti

Voit etsiä ja korvata tekstiä kaikkien diojen kaikista tekstikentistä. Löydettävän tekstin ensimmäisen esiintymän jälkeen (määritelmä findWhat), sinun täytyy selata Etsi -komentoa löytääksesi muita esiintymiä, jos sellaisia ​​on.

123456789101112131415161718192021222324252627282930313233 Sub FindAndReplaceText ()Dim mySlide As diaDim shp kuten muotoDim findWhat As StringHimmennä Korvaa merkkijonollaHimmennä ShpTxt TextRange -muodossaHimmennä TmpTxt TextRange -muodossafindWhat = "sakaali"korvataWith = "kettu"'Etsi ja etsi ja korvaaJokaiselle mySlide ActivePresentation.Slides -palvelussaJokaiselle shp: lle MySlide.ShapesissaJos shp.Type = 17 Sitten 'msoTextBox = 17Aseta ShpTxt = shp.TextFrame.TextRangeEtsi Etsi -sanan ensimmäinen esiintymä (jos sellainen on)Aseta TmpTxt = ShpTxt.Replace (findWhat, _Korvaa mitä: = korvata, _Koko sana: = totta)"Etsi muita" Etsi "-sanan esiintymiä (jos sellainen on)Tee vaikka ei TmpTxt ei ole mitäänAseta ShpTxt = ShpTxt.Characters (TmpTxt.Start + TmpTxt.Length, ShpTxt.Length)Aseta TmpTxt = ShpTxt.Replace (findWhat, _Korvaa mitä: = korvata, _Koko sana: = totta)SilmukkaLoppu JosSeuraava shpSeuraava mySlideEnd Sub

Vie dia kuvaksi

Voit viedä Nykyisen dian (tai minkä tahansa muun dian) PNG- tai JPG- (JPEG) tai BMP -kuvaksi.

1234567891011121314 Sub ExportSlideAsImage ()Himmentää kuvan tyyppiä merkkijononaDim pptName kuin merkkijonoDim imageName As StringDim mySlide As dia'Vie nykyinen dia kuvaanimageType = "png" 'tai jpg tai bmppptName = ActivePresentation.FullNameimageName = Vasen (pptName, InStr (pptName, ".")) & imageTypeAseta mySlide = Application.ActiveWindow.View.slidemySlide.Export imageName, imageTypeEnd Sub

Muuta kuvan kokoa kattamaan koko dia

1234567891011121314151617181920212223242526 Sub ResizeImageToCoverFullSlide ()Dim mySlide As diaDim shp kuten muoto'Muuta kuvan koko dian koko'Muuta nykyisen dian ensimmäisen muodon korkeutta ja leveyttä'liukumäen mittojen mukaanAseta mySlide = Application.ActiveWindow.View.slideAseta shp = mySlide.Shapes (1)'''' Korvaa kaksi yllä olevaa tilastotunnusta merkillä'' seuraava lausunto, jos haluat'' laajentaa valittua muotoa'' antaa virheen, jos mitään ei ole valittu'Aseta shp = ActiveWindow.Selection.ShapeRange (1)Shp: n kanssa.LockAspectRatio = Väärä.Height = ActivePresentation.PageSetup.SlideHeight.Width = ActivePresentation.PageSetup.SlideWidthVasen = 0Ylös = 0LopetaEnd Sub

Lopeta kaikki käynnissä olevat diaesitykset

Jos sinulla on useita diaesityksiä auki samanaikaisesti, voit sulkea ne kaikki alla olevan makron avulla.

1234567 Sub ExitAllRunningSlideShows ()Tee samalla SlideShowWindows.Count> 0SlideShowWindows (1) .View.ExitSilmukkaEnd Sub

PowerPointin automatisointi Excelistä

Voit myös muodostaa yhteyden PowerPointiin muiden sovellusten (kuten Excelin ja Wordin) kautta. Ensimmäisenä vaiheena sinun on viitattava PowerPoint -ilmentymään.

On kaksi tapaa tehdä se - varhainen sitominen ja myöhäinen sidonta .

Avaa PowerPoint - Early Binding

Early Binding -kohdassa sinun on nimenomaisesti asetettava viittaus Microsoft PowerPoint 16 -objektikirjastoon (MS Office 2022) VBE: ssä (Visual Basic Editor) käyttämällä Työkalut-> Viitteet.

123 'Varhainen sitominenDim pptApp sovelluksenaAseta pptApp = Uusi PowerPoint.Application

Avaa PowerPoint - Late Binding

Late Binding -sovellusmuuttuja ilmoitetaan objektina ja VBA -moottori muodostaa yhteyden oikeaan sovellukseen ajon aikana.

123 'Myöhäinen sidontaDim pptApp objektinaAseta pptApp = CreateObject ("PowerPoint.Application")

Tee sovelluksesta näkyvä

Kun olet määrittänyt viittauksen PowperPoint -sovellukseen, sinun on ehkä tehtävä se näkyväksi.

1 pptApp.Visible = Totta

Hallitse PowerPointia

Voit käyttää kaikkia menetelmiä PowerPointin esitysten manipulointiin, jotka on kuvattu edellä Excelistä lisäämällä vain yllä luomasi viittaus PowerPointiin.

Esimerkiksi

1 Presentations.Open ("Oma esitys.pptx")

täytyy käyttää tästä

1 pptApp .Presentations.Open ("Oma esitys.pptx")

Sulje sovellus

Kun olet suorittanut sen, mitä halusit tehdä PowerPoint -sovelluksella, sinun on suljettava se ja julkaistava viite.

12 pptApp.LopetaAseta pptApp = ei mitään

Kopioi Excelistä PowerPointiin

Tämä koodi kopioi alueen Excelistä PowerPointiin:

Huomautus: On pidetty mahdollisimman yksinkertaisena näyttää, kuinka Excel -alue voidaan kopioida PowerPoint -ohjelmaan VBA: n avulla.

12345678910111213141516171819 Sub copyRangeToPresentation ()'Avaa uusi PowerPoint -instanssiAseta pptApp = CreateObject ("PowerPoint.Application")PptAppin kanssa'Luo uusi esitysAseta ppt = .Presentations.Add'Lisää tyhjä diaAseta newSlide = ppt.Slides.Add (1, 12) 'ppLayoutBlank = 12Kopioi alue Active Sheetistä ExcelissäActiveSheet.Range ("A1: E10"). Kopioi'Liitä Powerpointiksi kuvananewSlide.Shapes.PasteSpecial DataType: = 2 '2 = ppPasteEnhancedMetafile'Vaihda PowerPointiin.AktivoidaLopetaEnd Sub

PowerPoint VBA: n usein kysytyt kysymykset

Mitä makrot ovat PPT: ssä?

Makro on yleinen termi, joka viittaa ohjelmointiohjeiden joukkoon, joka automatisoi tehtävät. PowerPoint (PPT) -makrot automatisoivat tehtävät PowerPointissa VBA -ohjelmointikielellä.

Kuinka voin käyttää VBA: ta PowerPointissa?

Jos haluat käyttää VBA: ta PowerPointissa, avaa VBA -editori (ALT + F11 tai kehittäjä> Visual Basic).

Kuinka luon makron PowerPointissa?

1. Avaa VBA -editori (ALT + F11 tai kehittäjä> Visual Basic)
2. Luo koodimoduuli valitsemalla Lisää> Moduuli
3. Kirjoita "Sub HelloWorld" ja paina Enter
4. Kirjoita rivien "Sub HelloWorld" ja "End Sub" väliin "MsgBox" Hello World! "
5. Olet luonut makron!
6. Suorita makro painamalla F5 -näppäintä

Käsikirjoitus: Vinamra Chandra

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave