PowerPoint プレゼンテーション中のテキストボックス

PowerPoint プレゼンテーション中のテキストボックス

私は PowerPoint プレゼンテーションに取り組んでいますが、実際のプレゼンテーション中に画面に情報、つまりプレゼンテーションの出席者から提供された情報を追加する必要があります。

そこで、開発タブからテキストボックスを追加し、プレゼンテーション中にデータを入力できるようになりました。問題ありません。

しかし、新しいスライドをクリックしたときに入力したデータを維持することはできますか?

次のスライドに進むと、入力した情報が消えてしまいます。その後のスライドでも情報を保持する方法はありますか?

前もって感謝します。

答え1

情報はそのまま消えるわけではなく、最初に入力したスライドに戻ったときにもそこに残っています。他のスライドの ActiveX テキスト ボックスには自動的に表示されなくなるだけです。

テキスト ボックスの Lost Focus イベントは、あるスライドから次のスライドに移動すると発生するため、Lost Focus イベント内の一部のコードでは、プレゼンテーション内の各スライドを調べ、任意のテキスト ボックス コントロール内のテキストを蓄積し、各テキスト ボックス内のテキストを蓄積されたテキストと一致させることができます。

これは完璧ではありませんが、試してみたい場合は、まずはこれです。このコードを各コントロールの LostFocus イベントに適用します。さらにサポートが必要な場合は、ここではなく、PowerPoint と VBA のタグを付けて StackOverflow に質問を投稿してください。

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

関連情報