我正在通过excel vba powerpoint幻灯片进行操作。我创建形状(“矩形”,“文本框”),但很难找到合适的索引号来进一步操纵它们。我知道我可以通过幻灯片(1).Shapes(I)索引数字来触摸它们,因为我从零创建ppt幻灯片。但我想在创建之后立即操纵它们。在粘贴方法中,我发现我可以编写代码Paste.Select,然后ActiveWindow.Selection给出了我的形状。但是我不能用AddShapes(msoRectangle.)Select来完成它。这就是为什么我希望将幻灯片中的所有对象名称都放到数组列表中,然后用矩形、TextBox这样的单词逐步在数组中搜索以查看它们。出于我的好奇心,ArrayList.Contains "TextBox“给出了"False”,尽管有一个名为"TextBox 1“的形状。我知道如果我写"TextBox 1“,它会给出真正的价值。但是我需要通过宏查找(什么:,LookIn),或者喜欢“TextBox*”.我还使用了数组的Filter方法,我也使用了另一个数组中的值,但是它给出了TypeMismatch 13错误。
Dim shpNameArr As Object
Set shpNameArr = CreateObject("System.Collections.ArrayList")
For each Item in .Slides(1).Shapes
shpNameArr.Add Item.Name
Next
For Each Item in shpNameArr
MsgBox Item
Next
For Each Item in shpNameArr
MsgBox shpNameArr.Contains("TextBox")
shpNameArrW = Filter(Item,"TextBox")
MsgBox shpNameArrW
Next
发布于 2021-12-30 20:23:10
Shapes.AddShape()
返回您刚添加的形状,因此您可以直接使用该形状,而无需搜索幻灯片上的形状。
https://learn.microsoft.com/en-us/office/vba/api/powerpoint.shapes.addshape
例:
Dim shp As Shape
Set shp= Slides(1)Shapes.AddShape(msoRect...)
现在您可以直接使用shp
。
https://stackoverflow.com/questions/70533631
复制相似问题