
저는 실제 프레젠테이션 중에 화면에 정보(예: 프레젠테이션에 참석한 사람들이 제공한 정보)를 추가해야 하는 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