Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

  PowerPoint VBA - nur erste Zeile des Makros wird ausgeführt?
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
miriki
Schlauberger
Schlauberger


Anmeldedatum: 05.03.2007
Beiträge: 303
Wohnort: Kiel

BeitragVerfasst am: 20.03.2007, 09:58 Nach oben

Hallo, allerseits!

Was mach ich falsch, was habe ich nicht bedacht? Ich habe folgendes gemacht:

Auf einer Folie habe ich 3 farbige (halbtransparent rot, grün, blau gefüllt) Kreise. als "Aktionseinstellung" habe ich für jeden Kreis dann die Makros
MausklickRot, MauskontaktRot,
MausklickGruen, MauskontaktGruen,
MausklickBlau, MauskontaktBlau
entsprechend aktiviert. Bislang probiere ich mit "MausklickRot" herum:

Sub MausklickRot()
Anfassen KreisRot
End Sub

Die entsprechende Routine, die dort aufgerufen wird:

Private Sub Anfassen(shp$)
Dim seitenhoehe As Long
Dim seitenbreite As Long
Dim untergrenze As Long
Dim obergrenze As Long
MsgBox "Klick: " & shp
With ActiveWindow
seitenhoehe = .Height
seitenbreite = .Width
End With
MsgBox "hoehe * breite (seite): " & seitenhoehe & " * " & seitenbreite
With ActivePresentation.Slides(1).Shapes(shp)
untergrenze = .Width
obergrenze = seitenhoehe - .Height - .Height
.Top = Int(Rnd * (obergrenze - untergrenze + 1) + untergrenze)
untergrenze = .Width
obergrenze = seitenbreite - .Width - .Width
.Left = Int(Rnd * (obergrenze - untergrenze + 1) + untergrenze)
MsgBox "top / left: " & .Top & " / " & .Left
End With
End Sub

Im Header des Moduls noch:

Option Explicit
Const KreisRot = "Ellipse 1"
Const KreisGruen = "Ellipse 2"
Const KreisBlau = "Ellipse 3"

Mein Problem jetzt:

Wenn ich die Präsentation mit F5 starte und kurz mit der Maus "rühre", wird der Mauscursor sichtbar. Bewege ich den Mauscursor dann über den roten Kreis und klicke dann mit links, erhalte ich auch die Messagebox mit dem "Klick: Ellipse 1".

Aber das war's dann auch! die 2. Messagebox kommt schon nicht mehr, geschweige denn, daß der Kreis seine Position verändert.

Wenn ich die msgbox-Anweisung hinter den ersten with-Block verschiebe, kommt nicht mal mehr die Messagebox!

Was muß ich hier ändern, damit das sub komplett abgearbeitet wird?

Ich hab die ppt mal im Anhang angefügt. Außerdem: PP 2000 (nicht 2003, hatte mich im letzten Thread vertan...)

Gruß, Michael


vba-test.ppt
 Beschreibung:

Download
 Dateiname:  vba-test.ppt
 Dateigröße:  26 KB
 Heruntergeladen:  33 mal

Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
miriki
Schlauberger
Schlauberger


Anmeldedatum: 05.03.2007
Beiträge: 303
Wohnort: Kiel

BeitragVerfasst am: 21.03.2007, 09:44 Nach oben

me, myself and i:
> Was mach ich falsch, was habe ich nicht bedacht?

Also ich bin jetzt einen ordentlichen Schritt weiter gekommen.

Das grundsätzliche Problem war wohl, daß ich auf den falschen Canvas zugegriffen habe. Wenn ich das SlideShowWindow nehme, klappt es.

Jetzt hab ich noch 2 kleinere Probleme:

a) Wie hoch / breit ist das SlideShowWindow?

With Application.ActivePresentation.SlideShowWindow
seitenhoehe = .Height
seitenbreite = .Width
seitenrandy = .Top
seitenrandx = .Left
End With

Damit kriege ich die Werte 768, 960, 0, 0 heraus. Die Grafikkarte ist auf eine Auflösung von 1280x1024 eingestellt.

Benutze ich dann folgendes für die Berechnung der neuen Position des Shapes:

untergrenze = shapehoehe
obergrenze = seitenhoehe - 2 * untergrenze
Y = Int(Rnd * (obergrenze - untergrenze + 1) + untergrenze)

untergrenze = shapebreite
obergrenze = seitenbreite - 2 * untergrenze
X = Int(Rnd * (obergrenze - untergrenze + 1) + untergrenze)

Dann passiert es aber immer wieder mal, daß der Shape im unsichtbaren Bereich verschwindet. Wie kann das sein?

b) Das Ansprechen eines Shapes macht mir leichte Probleme. Ich habe 3 Kreise erstellt, die "Ellipse 1" usw. heißen. Blöderweise behalten die Shapes aber ihre Namen nicht, wenn die Präsentation mit F5 gestartet wird. In meiner ppt wird aus "Ellipse 1" dann plötzlich "Oval 2" usw.

Z.Z. behelfe ich mir damit, zusätzlich zum Namen auch eine Nummer zu übergeben. Aber ich weiß nicht, ob PP womöglich die Reihenfolge der Shapes auch mal durcheinanderwürfelt, womit ich mit 1 nicht mehr den roten Kreis, sondern vielleicht den blauen erwischen würde.

Komme ich irgendwo noch an den ursprünglichen Namen heran, um ein Shape auf der Folie zu finden?

Gruß, Michael


vba-test.ppt
 Beschreibung:

Download
 Dateiname:  vba-test.ppt
 Dateigröße:  48.5 KB
 Heruntergeladen:  38 mal

Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Makro gesucht Zeile kopieren und in j... philipp.geyer Microsoft Excel Hilfe 4 05.09.2008, 15:59 Letzten Beitrag anzeigen
Keine neuen Beiträge CommandButton in Zeile erzeugen Paulus2408 Microsoft Excel Hilfe 2 04.09.2008, 16:41 Letzten Beitrag anzeigen
Keine neuen Beiträge Zeile kopieren und darunter einfügen magb Microsoft Excel Hilfe 4 03.09.2008, 16:34 Letzten Beitrag anzeigen
Keine neuen Beiträge Neue Zeile unterhalb eines Buttons ei... Paulus2408 Microsoft Excel Hilfe 2 03.09.2008, 16:04 Letzten Beitrag anzeigen
Keine neuen Beiträge Probleme beim ausführen eines Makros ... Gomorra Microsoft Excel Hilfe 26 28.08.2008, 14:09 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Battle-Dream | Tuning Forum | Join the YoungGeneration | krankenversicherungsvergleich | Kalorienarme Rezepte!
Versicherungsvergleich | Bürobedarf | Papier | Betten

Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de