
我正在製作一個 PowerPoint 演示文稿,需要在實際演示期間在螢幕上添加信息,即參加演示文稿的人員提供的信息。
因此,我從“開發人員”選項卡中添加了一個文字框,並且可以在演示期間輸入資料。沒問題。
但是,當我單擊新投影片時,我可以保留輸入的資料嗎?
當我轉到下一張投影片時,我輸入的資訊就會消失。有沒有辦法將其保留在隨後的幻燈片中?
提前致謝。
答案1
訊息並不會因此消失;而是會消失。當您返回到最初輸入它的幻燈片時,它仍然在那裡。它只是不會自動出現在其他投影片的 ActiveX 文字方塊中。
當您從一張投影片移動到下一張投影片時,文字方塊的「失去焦點」事件將會觸發,因此「失去焦點」事件中的一些程式碼可以查看簡報中的每張投影片,累積任何文字方塊控制項中的任何文本,然後將文字新增至每個投影片中。
這並不完美,但如果您想嘗試一下,這是一個開始。將此程式碼套用至每個控制項的 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