etkane 发表于 2024-9-21 12:57

PPT 批量按形状名字选择形状(暂且这么描述)

两段代码,第一段是批量选择。第二段是现实现在选择的名。
特别留意:PowerPoint默认会分配一个英文名。一般是形状描述+数字。
但是我们中文PPT里显示是中文名,这个中文名如果用来选择对象是OK的,但是如果用来比对后选择,就不行了。所以有了第二段代码。
也就是说,如果没改过名,要看看英文名是什么,比如arrow之类的,然后会有前后缀之类的。

Sub 按名称选中()
    Dim act_slide As Slide
    Set act_slide = Application.ActiveWindow.View.Slide
    'keyword = "Arrow"
    keyword = InputBox("搜索内容")
    If keyword <> "" Then
      ActiveWindow.Selection.Unselect
    End If
      Debug.Print (keyword)
    On Error Resume Next
      For i = 1 To act_slide.Shapes.Count
      Debug.Print i, act_slide.Shapes(i).Name, InStr(1, act_slide.Shapes(i).Name, keyword, vbTextCompare)
      
            If (InStr(1, act_slide.Shapes(i).Name, keyword, vbTextCompare) > 0) Then
                act_slide.Shapes(i).Select (msoFalse)
            End If
      Next i
End Sub


Sub 显示当前形状名()
    Dim act_slide As Slide
    Set act_slide = Application.ActiveWindow.View.Slide
      MsgBox (ActiveWindow.Selection.ShapeRange.Name)

End Sub

zhenghm1104 发表于 2024-9-21 13:39

沙发感谢分享

wushishen 发表于 2024-9-21 21:33

感谢分享咯

wangzhenuen 发表于 2024-9-29 10:14

学习了!!
页: [1]
查看完整版本: PPT 批量按形状名字选择形状(暂且这么描述)