我正在寻找一种方法,可以通过简单的 VBA 脚本自动列出 PowerPoint 演示文稿中的所有对象名称。我使用多张幻灯片上的选择窗格命名某些对象,并且需要在每张幻灯片上生成所有对象名称的列表。不幸的是,我的知识接近于零,但我设法改编了我在这里找到的脚本
Sub ListAllShapes()
Dim curSlide As Slide
Dim curShape As Shape
For Each curSlide In ActivePresentation.Slides
Debug.Print curSlide.SlideNumber
For Each curShape In curSlide.Shapes
Debug.Print curShape.Name
Next curShape
Next curSlide
End Sub
该脚本的问题在于它达到了 190 行左右的调试屏幕缓冲区的限制并剪切了形状列表的第一部分。如果可以将调试输出写入外部 txt 文件,那就太好了。
另一种绕过调试行限制的解决方案是放置一个形状名称的过滤器,以便它只打印具有特定前缀的名称。例如,名称以“ph-”开头的所有形状
也欢迎其他解决方案。谢谢。
使用您的代码并按照@SteveRindsberg 的建议 - 输出到文本文件。
此代码将在与您的演示文稿相同的文件夹中创建文件:
Sub ListAllShapes()
Dim curSlide As Slide
Dim curShape As Shape
Dim lFile As Long
Dim sPath As String
sPath = ActivePresentation.Path
lFile = FreeFile
Open sPath & "\Object Names.txt" For Append As #lFile
For Each curSlide In ActivePresentation.Slides
Print #lFile, curSlide.SlideNumber
For Each curShape In curSlide.Shapes
If Left(curShape.Name, 3) = "ph-" Then
Print #lFile, curShape.Name
End If
Next curShape
Next curSlide
Close #lFile
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句