Apró kis makrós ökörködés Powerpointban

2016. március 01. - Office Guru

Nem sűrűn, sőt szerintem szinte szökőévenként van arra szükség, hogy egy Powerpoint-előadásba makrót csempésszünk, de legalább annak tudatosításáért, hogy erre van lehetőségünk, egy rövid kis VBA-kódot mutatnék meg, amelyet bevethetünk prezentációnk során. Hangsúlyozni kell persze már a poszt elején, hogy erre a most felvázolt kis történetre van más megoldás is, sőt akár egy-egy plusz dia beszúrásával is elérhetjük a célunkat, de talán van valaki, akinek pont ilyen kódra van szüksége.

Az esemény, amit körbe fogunk járni, nem más, mint egy üzenet kiírása a képernyőre egy bizonyos dia megjelenése esetén, amivel akár jelezhetjük a szünetet is hallgatóságunknak és magunknak, de akár ellenőrző kérdéseket is tehetünk be vele.

Adott egy roppant egyszerű, szimplán szöveget tartalmazó színtelen kis prezentációnk (semmi extra, hiszen most nem is ez a lényeg):

insert01.jpgAzt szeretnénk most elérni, hogy a második slide levetítése után a képernyőn egy üzenet jelenjen meg, amely figyelmeztet minket, hogy itt a szünet ideje és ennek elokézása után folytatni tudjuk a vetítést.

Szépen menjünk át a VBA-editorba a megszokott módokon - billentyűkombinációval vagy a Developer fülről, majd itt hozzunk létre egy új modult:

insert02.jpgAztán már jöhet is szépen a kódunk, amelyhez a Microsoft által a kezünkbe adott OnSlideShowPageChange() eseményt fogjuk felhasználni, ez ugyanis minden egyes slide megjelenésekor elindul, ebből pedig értelemszerűen kikövetkeztethető, hogy itt meg is határozhatjuk, hogy melyik diánál mi történjen a képernyőn.

Nem csak üzenetet írathatunk ki egyébként, akár meg is változtathatjuk a kurzorunk alakját vagy a diánk háttérszínét, de azt is beiktathatjuk, hogy még egy kattintást várjon tőlünk a Powerpoint, mielőtt indítja az eseményünket - a lehetőségeink nagyjából korlátlanok. Az OnslideShowPageChange() esemény paramétere a SlideShowWindow érték, azaz ez egy olyan set, amelynek az értékét más funkciókkal már nem tudjuk meghivatkozni.

Innentől pedig már csak egyetlen tulajdonságot kell ismernünk, ami nem más, mint a View.CurrentShowPosition tulajdonság, ami visszaadja a vetítésünkben az aktuális diánk helyzetét, ami éppen a képernyőn van. Ha pedig ez az aktuális dia éppen a második, akkor jöhet az üzenetünk:

Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.View.CurrentShowPosition = 2 Then
MsgBox "Itt az idő egy kis szünetre!", vbOKOnly, "Fontos üzenet"
End If
End Sub

insert04.jpg

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr138433580

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.