Makrothek
MS Powerpoint betrifft MS Powerpoint

Problembeschreibung:

Sie wollen Folien mit Interaktionen während der Präsentation versehen. Sie können jedoch nur Aktionen auf Objekte / Shapes anwenden oder deren Eigenschaften per VBA ändern, wenn der Name des Shapes bekannt ist. Über den Namen können Shapes direkt angesprochen werden. Da Powerpoint den Namen dynamisch und von der Erstellungsreihenfolge der Shapes abhängig vergibt, ist der Name quasi unbekannt.

Leider bietet Powerpoint unter der normalen Benutzoberfläche keine Möglichkeit, die Objekte / Shapes zu benennen.

Lösungsidee

Mittels VBA können Objekte / Shapes im Powerpoint benannt oder umbenannt werden, indem die Name-Eigenschaft des Shapes geändert wird. Nachfolgender Programmcode stellt diese Möglichkeit zur Verfügung.

Programmcode


'Prozedur zum umbenennen eines Shapes / Objekts
Sub Objekte_benennen(ByVal Objekt As Shape)
  'benennt das übergebene Shape um
  Dim alter_Name As String
  Dim neuer_Name As String

  'Name des Shapes ermitteln
  alter_Name = Objekt.Name
  'neuen Namen mit Input-Box erfragen
  neuer_Name = InputBox("Neuer Name:", , alter_Name)
  If Len(Trim(neuer_Name)) = 0 Then Exit Sub   'Abbruch durch Eingabe von Nichts
  If neuer_Name <> alter_Name Then Objekt.Name = neuer_Name  'sonst Shape neuen Namen geben
End Sub

'Prozedur zum Benennen der selektierten Objekte
Sub Selektiertes_Objekt_benennen()
  'benennt die ausgewählten Shapes um
  Dim Objekt As Shape

  For Each Objekt In ActiveWindow.Selection.ShapeRange
    Objekt.Select
    Objekte_benennen Objekt
  Next Objekt
End Sub

'Prozedur zum Benennen aller Objekte in der Folie
Sub Alle_Objekte_benennen()
  'benennt alle Shapes in der Folie um
  Dim Objekt As Shape

  For Each Objekt In ActiveWindow.Selection.SlideRange.Shapes
    Objekt.Select
    Objekte_benennen Objekt
  Next Objekt
End Sub