PDA

Vollständige Version anzeigen : bitte bitte helft mir.... makro in präsentation automatisch aufrufen


ferdix
17.07.2003, 14:03
Hallo zusammen.

ich habe ein riesen Problem:

ich muss ein Makro innerhalb einer Präsentation automatisch aufrufen, dh. wenn eine bestimmte folie kommt brauche ich den Aufruf für ein bestimmtes makro (ähnlich worksheet_activate).

Leider finde ich hierzu überhaupt nichts...

Gruss
Ferdinand

caro
17.07.2003, 15:44
Hallöchen

Mit welcher Version arbeitest Du denn? Falls Du 97 hast, dann kannst Du's vergessen. Geht nicht.

Gruss

caro

ferdix
17.07.2003, 15:56
Hallo Caro,

Wahlweise mit O2000 oder an einem anderen System mit OXP.

Wäre echt super, wenn Du etwas dazu weisst.

Gruss Ferdinand

jinx
17.07.2003, 16:06
<font size="2" face="Century Gothic">Moin, Ferdinand,

gem. Netiquette (http://www.ms-office-forum.net/forum/netiquette.php) ein Thema - ein Beitrag; bitte nicht immer wieder neue Beiträge zu einem Themenbereich anfangen. Den anderen Beitrag schicke ich daher "über den Jordan"...</font>

caro
17.07.2003, 16:20
Hallo Ferdinand

Habe im 2002 mal im Objektkatalog und der Hilfe nachgesehen. Mit SlideSelectionChanged sollte dies gehen. Gib dies mal in der Hilfe ein und schau's Dir an, ob dies evtl. eine Lösung für Dein Problem ist.

Ich muss leider gleich weg, bin erst Morgen wieder da. Wenn's nicht geht oder Du damit nicht klar kommst, melde Dich einfach wieder, dann werd ich Morgen mal schauen, ob ich den Code zusammenflicken kann.

Grüsschen und schönen Abend

caro

ferdix
17.07.2003, 16:21
Sorry jinx,

Du hast natürlich recht!
Ich bin schon etwas mit den Nerven runter, was in Excel ganz leicht ist, funktioniert in Powerpoint nicht (zumindest komme ich nicht damit zurecht)...

Also wird nicht wieder vorkommen

Gruss
Ferdinand

ferdix
17.07.2003, 22:37
Hallo Caro,

habe mir das mal angesehen, leider muss ich glaub ich auf dein Angebot zurück kommen. Ich tüftle normalerweise gerne nur rennt mir dieses Mal die Zeit weg.

Quelle des Ärgernisses ist, dass das Steuerelement Webbrowser immer erst nach dem 2. Aufruf der Präsentation eine Webseite darstellt.

>>
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If URL = "" Then WebBrowser1.Navigate "http://www.gmx.de"
End Sub
<<

Wenn ich das if then weglasse, dann endet das ganze in einer art schleife, die Seite wird ständig neu geladen.

ich habe auf ein script von Microsoft zurückgegriffen, das einen umweg über eine Schaltfläche geht:

>>
Sub go2URL1()
Dim varURL As Variant
varURL = "http://www.gmx.de"
Slide1.WebBrowser1.Navigate varURL
End Sub

Private Sub CommandButton1_Click()
go2URL1
End Sub
<<

Funktioniert super, ich kann aber dieses mal keine Schaltfläche verwenden da die Präsentation ohne interaktion eine Webseite zeigen soll.


Jetzt würde ich also gerne die go2URL1 - Geschichte automatisch sozusagen bei Folienbetreten aufrufen...

Gruss
Ferdinand

caro
18.07.2003, 09:33
Hallo Ferdinand

Bin am rumpröbeln, hab jedoch noch keine fertige Lösung. Es scheint mir nicht so einfach.

Bis jetzt habe ich folgendes rausgefunden:

Ich habe in einem Klassenmodul eine Objektvariable mit folgendem Namen deklariert: Public WithEvents App as Application
Das Klassenmodul habe ich wie folgt benannt: EventClassModule

Nach dieser Deklaration werden in der Prozedurliste Ereignisprozeduren aufgelistet wie z.B. NewPresentation, SlideSelectionChanged, usw.

Das ganze muss dann initialisiert bzw. verknüpft werden. Dazu habe ich in einem Modul folgendes eingegeben:
Dim X As New EventClassModule
Sub InitializeApp()
Set X.App = Application
End Sub

Wenn dann das InitializeApp ausgeführt wird, werden die Ereignisprozeduren ausgeführt. Jedoch habe ich noch nicht rausgefunden, wie ich das InitalizeApp automatisch ausführen kann.

Diese Lösung hier habe ich in der VBA-Hilfe unter "Verwenden von Ereignissen mit dem Application-Objekt" gefunden. Ich hab's Dir hier deshalb so detailiert aufgeführt, weil man den Hilfetext etwa 5 mal lesen muss, bis man das ganze checkt.

Versuchs auch mal damit. Ich probier auch weiter.

Grüsschen

caro

ferdix
18.07.2003, 11:33
Hallo Caro,

sieht das im Klassenmodul dann in etwa so aus?

Public WithEvents App As Application

Private Sub App_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
Slide2.WebBrowser1.Navigate2 "http://www.google.de"
End Sub

(Ich komme hier übrigens an meine Grenzen... wie benennt man denn ein klassenmodul um?)

in einem Modul habe ich dann:

Dim X As New Klasse1

Sub InitializeApp()
Set X.App = Application
End Sub

Leider passiert noch nichts aussergewöhnliches... is aber auch Neuland für mich ich noch nie ein Klassenmodul gebaut...


Ich habe jetzt das Problem, dass ich bis Sonntag Nachmittag unterwegs bin... (Ich habe durchblicken lassen, dass ich noch etwas Zeit brauche und muss erst Anfang nächster Woche wieder reporten...) Also kannst Du Dich auch zurücklehnen... Ist echt super nett, dass Du dich so reinkniest.... Danke nochmal!

Gruss
Ferdinand

caro
18.07.2003, 13:05
Hallo Ferdinand

Null Problemo. Bin doch auch froh, wenn mir jemand hilft. Bin auch nicht weitergekommen. Werde mir mal das ganze am Wochenende in Ruhe ansehen.

Bis Montag

Grüsschen

caro

ferdix
20.07.2003, 17:55
Hallo Caro,

ich habe noch weiter probiert, komme aber nicht drauf.
Wenn Du nichts mehr weisst, werde ich wohl oder übel das Problem als ungelöst abhaken.
Ich bin da nicht so weit drin, als dass ich noch mehr Optionen hätte...

Gruss
Ferdinand

caro
22.07.2003, 07:20
Hallo Ferdinand

Bin leider auch nicht weitergekommen. Das schlimme ist, man findet auch im Internet nichts dazu und Literatur zu Thema VBA und PowerPoint gibts auch nicht. Dies würde mich nämlich auch interessieren.

Sorry, dass ich Dir nicht weiterhelfen konnte.

Grüsschen und trotzdem einen schönen Tag

wünscht Dir

caro

ferdix
22.07.2003, 07:45
Hallo Caro,

vielen Dank für Deinen Einsatz. Ich finde das ganze etwas seltsam, das was ich benötige ist doch eigentlich nicht so sehr abwegig...

Aber sowas kommt schon mal vor bei MS.

Ich wünsch Dir noch ne schöne Woche,
Gruss
Ferdinand