Caixas de texto durante apresentações em PowerPoint

Caixas de texto durante apresentações em PowerPoint

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

informação relacionada