两段代码,第一段是批量选择。第二段是现实现在选择的名。
特别留意:PowerPoint默认会分配一个英文名。一般是形状描述+数字。
但是我们中文PPT里显示是中文名,这个中文名如果用来选择对象是OK的,但是如果用来比对后选择,就不行了。所以有了第二段代码。
也就是说,如果没改过名,要看看英文名是什么,比如arrow之类的,然后会有前后缀之类的。
[Visual Basic] 纯文本查看 复制代码 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
[Visual Basic] 纯文本查看 复制代码 Sub 显示当前形状名()
Dim act_slide As Slide
Set act_slide = Application.ActiveWindow.View.Slide
MsgBox (ActiveWindow.Selection.ShapeRange.Name)
End Sub
|