Textfelder während PowerPoint-Präsentationen

Textfelder während PowerPoint-Präsentationen

Ich arbeite an einer PowerPoint-Präsentation, bei der ich während der eigentlichen Präsentation Informationen auf dem Bildschirm einfügen muss, also Informationen, die von den Präsentationsteilnehmern bereitgestellt werden.

Ich habe also ein Textfeld aus der Registerkarte „Entwickler“ hinzugefügt und kann während der Präsentation Daten eingeben. Kein Problem.

Aber bleiben die eingegebenen Daten dann erhalten, wenn ich auf eine neue Folie klicke?

Wenn ich zur nächsten Folie gehe, verschwinden die von mir eingegebenen Informationen. Gibt es eine Möglichkeit, sie in den folgenden Folien beizubehalten?

Dank im Voraus.

Antwort1

Die Informationen verschwinden nicht als solche; sie sind immer noch da, wenn Sie zu der Folie zurückkehren, auf der Sie sie ursprünglich eingegeben haben. Sie werden nur nicht automatisch in einem ActiveX-Textfeld auf anderen Folien angezeigt.

Das Ereignis „Lost Focus“ des Textfelds wird ausgelöst, wenn Sie von einer Folie zur nächsten wechseln. Daher könnte ein Code im Ereignis „Lost Focus“ jede Folie in der Präsentation betrachten, beliebigen Text in jedem Textfeld-Steuerelement sammeln und dann den Text in jedem Textfeld an den gesammelten Text anpassen.

Das ist nicht perfekt, aber wenn Sie es versuchen möchten, ist es ein Anfang. Wenden Sie diesen Code auf das LostFocus-Ereignis jedes Steuerelements an. Wenn Sie weitere Hilfe benötigen, posten Sie Fragen mit Powerpoint- und VBA-Tags auf StackOverflow und nicht hier:

Private Sub TextBox1_LostFocus()

    Dim oSl As Slide
    Dim oSh As Shape
    Dim sText As String

    On Error Resume Next
    ' Accumulate text from all ActiveX text boxes
    For Each oSl In ActivePresentation.Slides
        For Each oSh In oSl.Shapes
            If oSh.Type = msoOLEControlObject Then
                sText = sText & oSh.OLEFormat.Object.Text
            End If
        Next
    Next

    ' Apply the accumulated text
    For Each oSl In ActivePresentation.Slides
        For Each oSh In oSl.Shapes
            If oSh.Type = msoOLEControlObject Then
                oSh.OLEFormat.Object.Text = sText
            End If
        Next
    Next

End Sub

verwandte Informationen