我想要一张PowerPoint幻灯片在另一个窗口中自动打开Word文档

时间:2019-04-19 11:47:13

标签: vba ms-word powerpoint

我有一张幻灯片投影片,上面放着我在投影机上显示的歌曲的歌词。我还有一个包含Word文档的文件夹,其中包含音乐家执行歌曲所需的歌曲的歌词和和弦。我希望能够打开幻灯片放映,在演示者模式下运行(具有从列表中选择幻灯片的选项),当我选择要在投影仪上显示的幻灯片时,我想要相应的Word文档在另一个屏幕上打开。我的设置是在演示者模式下使用笔记本电脑显示,在会场上使用歌词的投影仪,在显示包含和弦歌词的Word文档时使用监视器。我希望vba关闭任何打开的Word文档而不关闭Word(这样它将保留在我放置在显示器上的位置),然后打开与幻灯片相对应的Word文档。

发现单词打开了,但是看不到任何单词。当我去任务管理器时,有12个winword.exe正在运行。我杀死了所有人,然后修改了代码,它开始执行我想要的操作。

Public Sub OnSlideShowPageChange()
On Error Resume Next
Dim i As Integer
i = ActivePresentation.SlideShowWindow.View.CurrentShowPosition
If IsNull(Application.Presentations(1).Slides(i).Shapes.Range(Array("WordLoc")).TextFrame.TextRange.Text) Then
Exit Sub
End If
Dim wdApp As Word.Application, wdDoc As Word.Document
Set wdApp = GetObject(, "Word.Application")
On Error GoTo 0
If Not wdApp Is Nothing Then
wdApp.Documents.Close (wdDoNotSaveChanges)
On Error GoTo 0
Else
Set wdApp = CreateObject("Word.Application")
End If
Set wdDoc = wdApp.Documents.Open(Application.Presentations(1).Slides(i).Shapes.Range(Array("WordLoc")).TextFrame.TextRange.Text, , True)
On Error GoTo 0
wdApp.Visible = True
wdDoc.Activate
End Sub

0 个答案:

没有答案