Vba ArrayList 或 Array Find 方法
Vba ArrayList or Array Find method
我正在通过 excel vba powerpoint 幻灯片进行操作。我创建了形状(“矩形”、“文本框”),但很难找到它们合适的索引号来进一步操作它们。我知道我可以通过 Slides(1).Shapes(i) 索引号来触摸它们,因为我从零开始创建 ppt 幻灯片。但是我想在创建后立即操作它们。在粘贴方法中,我发现我可以编写代码 Paste.Select 然后 ActiveWindow.Selection 给我形状。但是我无法使用 AddShapes(msoRectangle...)Select 来完成。这就是为什么我想将 slide 中的所有对象名称放入数组列表,然后在该数组中逐步搜索 Rectangle、TextBox 等词以查看它们。
出于我的好奇心,即使存在名为“TextBox 1”的形状,ArrayList.Contains“TextBox”也会给出“False”。我知道如果我写“TextBox 1”它会给出真正的价值。但是我需要通过宏来查找(what:,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
Shapes.AddShape()
returns 您刚刚添加的形状,因此您可以直接使用它而无需搜索幻灯片上的形状。
https://docs.microsoft.com/en-us/office/vba/api/powerpoint.shapes.addshape
例如:
Dim shp As Shape
Set shp= Slides(1)Shapes.AddShape(msoRect...)
现在您可以直接使用 shp
我正在通过 excel vba powerpoint 幻灯片进行操作。我创建了形状(“矩形”、“文本框”),但很难找到它们合适的索引号来进一步操作它们。我知道我可以通过 Slides(1).Shapes(i) 索引号来触摸它们,因为我从零开始创建 ppt 幻灯片。但是我想在创建后立即操作它们。在粘贴方法中,我发现我可以编写代码 Paste.Select 然后 ActiveWindow.Selection 给我形状。但是我无法使用 AddShapes(msoRectangle...)Select 来完成。这就是为什么我想将 slide 中的所有对象名称放入数组列表,然后在该数组中逐步搜索 Rectangle、TextBox 等词以查看它们。 出于我的好奇心,即使存在名为“TextBox 1”的形状,ArrayList.Contains“TextBox”也会给出“False”。我知道如果我写“TextBox 1”它会给出真正的价值。但是我需要通过宏来查找(what:,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
Shapes.AddShape()
returns 您刚刚添加的形状,因此您可以直接使用它而无需搜索幻灯片上的形状。
https://docs.microsoft.com/en-us/office/vba/api/powerpoint.shapes.addshape
例如:
Dim shp As Shape
Set shp= Slides(1)Shapes.AddShape(msoRect...)
现在您可以直接使用 shp