使用 VBA 将超链接和文本添加到 PowerPoint 中的演讲者备注部分
Adding hyperlinks and text to speaker notes section within PowerPoint using VBA
我正在尝试遍历 PowerPoint 中的所有幻灯片,并为链接添加关联文本,并将完整超链接添加到注释部分。
我已经成功地做到了这一点,但现在我得到一个“运行 时间错误‘-21247188160 (80048240)’。在我的研究中,人们建议添加一个 timer/DoEvent到循环部分中的代码,因为它可能会遇到一些问题。不幸的是,那没有用。
有什么想法吗?
Sub AddHyperlinksWithNameToNotes()
Dim vSlide As Slide
Dim vHyperlink As Hyperlink
Dim sLinks As String
Dim vShape As Shape
For Each vSlide In ActivePresentation.Slides
For Each vHyperlink In vSlide.Hyperlinks
sLinks = sLinks _
& vHyperlink.TextToDisplay _
& ": " & vHyperlink.Address _
& vbCrLf
Next
vSlide.NotesPage.Shapes(2).TextFrame.TextRange = ""
vSlide.NotesPage.Shapes(2).TextFrame.TextRange.Text = sLinks
sLinks = ""
Next
End Sub
谢谢!
如文档中所写,PP 中的超链接可能有两种类型:msoHyperlinkRange 和 msoHyperlinkShape - 请参阅 https://docs.microsoft.com/ru-ru/office/vba/api/powerpoint.hyperlink.type。所以 msoHyperlinkShape
的超链接没有 TextToDisplay.
尝试检查 vHyperlink.Type
:
Sub AddHyperlinksWithNameToNotes()
Dim vSlide As Slide
Dim vHyperlink As Hyperlink
Dim sLinks As String
Dim vShape As Shape
For Each vSlide In ActivePresentation.Slides
For Each vHyperlink In vSlide.Hyperlinks
If vHyperlink.Type = msoHyperlinkRange Then ' check type
ttd = vHyperlink.TextToDisplay
Else
ttd = "LinkOnShape"
End If
sLinks = sLinks _
& ttd _
& ": " & vHyperlink.Address _
& vbCrLf
Next
vSlide.NotesPage.Shapes(2).TextFrame.TextRange = ""
vSlide.NotesPage.Shapes(2).TextFrame.TextRange.Text = sLinks
sLinks = ""
Next
End Sub
我正在尝试遍历 PowerPoint 中的所有幻灯片,并为链接添加关联文本,并将完整超链接添加到注释部分。
我已经成功地做到了这一点,但现在我得到一个“运行 时间错误‘-21247188160 (80048240)’。在我的研究中,人们建议添加一个 timer/DoEvent到循环部分中的代码,因为它可能会遇到一些问题。不幸的是,那没有用。
有什么想法吗?
Sub AddHyperlinksWithNameToNotes()
Dim vSlide As Slide
Dim vHyperlink As Hyperlink
Dim sLinks As String
Dim vShape As Shape
For Each vSlide In ActivePresentation.Slides
For Each vHyperlink In vSlide.Hyperlinks
sLinks = sLinks _
& vHyperlink.TextToDisplay _
& ": " & vHyperlink.Address _
& vbCrLf
Next
vSlide.NotesPage.Shapes(2).TextFrame.TextRange = ""
vSlide.NotesPage.Shapes(2).TextFrame.TextRange.Text = sLinks
sLinks = ""
Next
End Sub
谢谢!
如文档中所写,PP 中的超链接可能有两种类型:msoHyperlinkRange 和 msoHyperlinkShape - 请参阅 https://docs.microsoft.com/ru-ru/office/vba/api/powerpoint.hyperlink.type。所以 msoHyperlinkShape
的超链接没有 TextToDisplay.
尝试检查 vHyperlink.Type
:
Sub AddHyperlinksWithNameToNotes()
Dim vSlide As Slide
Dim vHyperlink As Hyperlink
Dim sLinks As String
Dim vShape As Shape
For Each vSlide In ActivePresentation.Slides
For Each vHyperlink In vSlide.Hyperlinks
If vHyperlink.Type = msoHyperlinkRange Then ' check type
ttd = vHyperlink.TextToDisplay
Else
ttd = "LinkOnShape"
End If
sLinks = sLinks _
& ttd _
& ": " & vHyperlink.Address _
& vbCrLf
Next
vSlide.NotesPage.Shapes(2).TextFrame.TextRange = ""
vSlide.NotesPage.Shapes(2).TextFrame.TextRange.Text = sLinks
sLinks = ""
Next
End Sub