我想要一个可以将powerpoint笔记复制到文本文件的宏,我在网上发现了这个macro。但是我发现显然没有保留我需要的格式,所以我写了这个宏。
Sub TestNotes()
Dim objWord
Dim objDoc
Dim objSelection
Dim oSlides As Slides
Dim oSl As Slide
Dim oSh As Shape
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objSelection = objWord.Selection
Set oSlides = ActivePresentation.Slides
For Each oSl In oSlides
For Each oSh In oSl.NotesPage.Shapes
If oSh.PlaceholderFormat.Type = ppPlaceholderBody Then
If oSh.HasTextFrame Then
If oSh.TextFrame.HasText Then
oSh.TextFrame.TextRange.Copy
objSelection.TypeText ("Slide: " & CStr(oSl.SlideIndex) & vbCrLf)
objSelection.Range.Paste
objSelection.TypeText (vbCrLf)
End If
End If
End If
Next oSh
Next oSl
End Sub
问题是当你运行它时,复制和粘贴动作太慢而且所有幻灯片注释都混淆了。我尝试使用DoEvents
,但事实证明这是无效的。有没有办法用宏实现我想要的东西?换句话说,我该如何解决我的问题?
答案 0 :(得分:2)
因为您正在使用objSelection.Range.Paste,所以您的文字变得混乱了。只需用
替换它objSelection.Paste
这应解决您的问题,文字搞砸了。