首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vba ArrayList或数组查找方法

Vba ArrayList或数组查找方法
EN

Stack Overflow用户
提问于 2021-12-30 15:31:21
回答 1查看 94关注 0票数 0

我正在通过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错误。

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-30 20:23:10

Shapes.AddShape()返回您刚添加的形状,因此您可以直接使用该形状,而无需搜索幻灯片上的形状。

https://learn.microsoft.com/en-us/office/vba/api/powerpoint.shapes.addshape

例:

代码语言:javascript
运行
复制
Dim shp As Shape
Set shp= Slides(1)Shapes.AddShape(msoRect...)

现在您可以直接使用shp

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70533631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档