Forums Neueste Beiträge
 

Makro wird nicht ausgeführt

03/10/2009 - 12:46 von Ronald Sittinger | Report spam
Hallo und einen schönen Gruß aus Halle an der Saale!
Folgendes Problem: Ich habe eine Pràsentation mit vielen Folien. Um besser
zu navigieren habe ich eine Navigationsleiste erstellt, die wie auf einer
Homepage funktioniert.
Beim Klicken wird ein Shape ausgeblendet und eine neues eingeblendet.
Sub Test()
Dim sld As Slide
Dim sh As Shape
Set sld = ActivePresentation.Slides.FindBySlideID(263)
Set sh = sld.Shapes("Menu")
sh.Visible = Not sh.Visible
End Sub

Dieses Makro funktioniert gut. Beim Klick auf die Schaltflàche wird das
Shape „Menu“ ein und ausgeblendet. Wenn ich aber die Menüleiste aus der
Beispielfolie in alle anderen 40 Folien kopiere, muss ich den Index (263 im
Beispiel) in allen vier Makros für jede neue Folie àndern und an den
aktuellen Wert anpassen.

Jetzt habe ich folgendes Makro geschrieben:

Sub Test_2()
Dim sld As Slide
Dim sh As Shape
Dim ActiveSlide As Slide
Set ActiveSlide = ActivePresentation.Slides(ActiveWindow.View.Slide.Name)
Set sld = ActivePresentation.Slides(ActiveSlide.SlideIndex)
Set sh = sld.Shapes("Menu")
'MsgBox ActiveSlide.SlideIndex
sh.Visible = Not sh.Visible
End Sub

„ActivePresentation.Slides(ActiveSlide.SlideIndex)” gibt mir den Index der
aktuellen Folie zurück. Das habe ich mit einer MsgBox überprüft. Das Makro
làuft auch in der Entwurfsansicht prima. Wenn ich aber das Makro ausprobiere
(„Aus aktueller Folie“) geht es nicht. Es passiert gar nichts! Ich habe alle
Sicherheitseinstellungen auf niedrig (alle Makros aktiveren und Zugriff
vertrauen…).

Warum zum Geier funktioniert das nicht? Wenn ich alle Werte per Hand
eintrage, dann geht es auch! Wieso làuft es in der Entwurfsumgebung und
nicht in der Pràsentationsansicht?

Mit der Bitte um Hilfe,

mfg

Ronald

Vàter sind keine Auswechselspieler - Gebt und einen Stammplatz!

www.die-sittinger.de
www.sittsoft.org
 

Lesen sie die antworten

#1 Dr. Eckehard Pfeifer
05/10/2009 - 22:33 | Warnen spam
Hallo, was macht denn eigentlich

Dim sld As Slide
Dim ActiveSlide As Slide
Set ActiveSlide =
ActivePresentation.Slides(ActiveWindow.View.Slide.Name)
Set sld = ActivePresentation.Slides(ActiveSlide.SlideIndex)


Reicht es nicht zu, zu sagen
dim sld as Slide
set sld=Application.SlideShowWindows(1).View.Slide

Achtung: ActiveWindows ist was für den Entwurf (besser hieße es
ActiveDocumentWindow).


MfG EP
Entwicklung - Beratung - Training (www.dr-e-pfeifer.net)
XL-Maxibuch (ISBN: 3-86645-231-4)
Microsoft Office 2007-Programmierung (ISBN 3-86645-415-5)

Ähnliche fragen