Tipps & Tricks: Detail

Hier finden Sie zu dem ausgewählten Tipp oder Trick die detaillierten Angaben.

Wenn in den folgenden Erläuterungen Texte wie MsgBox formatiert sind, handelt es sich um konkret einzugebende Inhalte wie VBA-Code oder die Eingabe von Werten. Menüs wie Datei Speichern sind wie hier zu sehen formatiert. Schaltflächen oder Registerkarten auf Dialogen werden wie Menüs behandelt.

Alle Tipps sind nach bestem Wissen geprüft, aber selbstverständlich ohne Gewähr. Sollten Sie doch einen Fehler darin entdecken, würden wir uns freuen, wenn Sie uns per E-Mail Bescheid sagen.

Das schwierigste Problem bei der Programmierung in einer PowerPoint-Präsentation (also nicht während des Entwurfs!) ist die Erkennung des markierten Objekts. Die Notfall-Technik heißt oft: für zehn Rechtecke, deren Makro-Aktion beispielsweise das angeklickte Rechteck rot färben soll, werden zehn Prozeduren geschrieben, in denen das jeweilige Rechteck hart codiert ist.

Dabei ist es so unglaublich einfach, das auslösende Objekt per VBA zu ermitteln, dass daran vor allem ärgerlich ist, wie miserabel die Technik dokumentiert ist (und wie sehr sich das mal wieder von Screen.ActiveControl in Access oder von CommandBars.ActionControl in Office allgemein unterscheidet!).

Wenn Sie für ein markiertes Objekt im Entwurf per Rechtsklick Aktionseinstellungen wählen und dort als Makro ausführen den Namen Ihrer bereits vorhandenen Prozedur (hier also KlickMich) angeben, wird diese beim Aufruf automatisch das entsprechende Objekt als Parameter erhalten. Sie müssen als erstes Argument lediglich eine Shape-Variable erwarten:

Sub KlickMich(shpObject As Shape)
With shpObject
MsgBox "Ich bin '" & .Name & "' mit Width=" & _
.Width & " und Height=" & .Height
End With
End Sub

Über den shpObject-Parameter (der einen beliebigen Namen haben darf) können Sie flexibel das jeweils angeklickte Objekt ansprechen, ohne dieses konkret im Code nennen zu müssen.