
Estou trabalhando em uma apresentação em PowerPoint na qual preciso adicionar informações na tela durante a apresentação propriamente dita, ou seja, informações fornecidas por quem participa da apresentação.
Então adicionei uma caixa de texto na guia Desenvolvedor e posso inserir dados durante a apresentação. Sem problemas.
Mas posso manter os dados inseridos quando clico em um novo slide?
Quando passo para o próximo slide, as informações que inseri desaparecem. Existe uma maneira de mantê-lo nos slides seguintes?
Desde já, obrigado.
Responder1
A informação não desaparece como tal; ele ainda estará lá quando você voltar ao slide onde o inseriu originalmente. Ele simplesmente não aparecerá automaticamente em uma caixa de texto ActiveX em outros slides.
O evento Lost Focus da caixa de texto será acionado quando você passar de um slide para o próximo, portanto, algum código no evento Lost Focus poderá examinar cada slide da apresentação, acumular qualquer texto em qualquer controle de caixa de texto e, em seguida, criar o texto em cada caixa de texto corresponda ao texto acumulado.
Isso não é perfeito, mas se você quiser tentar, é um começo. Aplique este código ao evento LostFocus de cada controle. Para obter mais ajuda, poste perguntas no StackOverflow com tags Powerpoint e VBA, em vez de aqui:
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