Vba 向变量名添加数字

Vba 向变量名添加数字,vba,Vba,我想为iGrafx编写一个宏,它将检查用户模型创建了多少个对象,并检查它们的类型,例如line、block等。。要在编写的简单循环中执行此操作,但我的问题是-iGrafx对象的名称为Shape1、Shape2或Line1、Line2,如何编写循环,以便每次循环时使用TypeOf并向变量名称Shape添加一个数字 Dim numObjects As Integer Dim numObjectsArraySize As Integer Di

我想为iGrafx编写一个宏,它将检查用户模型创建了多少个对象,并检查它们的类型,例如line、block等。。要在编写的简单循环中执行此操作,但我的问题是-iGrafx对象的名称为Shape1、Shape2或Line1、Line2,如何编写循环,以便每次循环时使用TypeOf并向变量名称Shape添加一个数字

Dim numObjects As Integer                              
Dim numObjectsArraySize As Integer
Dim procesObjectsTypes() As String
Dim index As Integer
Dim loopVarName As String
Dim indexString As String

numObjects = Document.ActiveDiagram.DiagramObjects.Count  
numObjectsArraySize = numObjects - 1                        

ReDim procesObjectsTypes(numObjectsArraySize)    

For index = 1 To numObjects
    indexString = CStr(index)
    loopVarName = "Shape" + indexString
    procesObjectsTypes(index - 1) = TypeName(loopVarName)
Next

这是一个平底船,因为我以前从未使用过iGrafx;如果他们坚持在Word VBA和Excel VBA中建立的对象模型约定,那么我猜DiagramObjects集合有一个Item方法

procesObjectsTypes(index - 1) = TypeName(Document.ActiveDiagram.DiagramObjects.Item(index)) & indexString 

检查loopVarName值会得到一个正常的字符串,但我想使用该变量中的字符串作为变量名来检查其类型。这几乎肯定不是正确的方法。我不熟悉iGrafx,但如果您向我们展示如何创建对象,例如Shape1,则可能会有所帮助。@Jean-FrançoisCorbett形状是由用户在程序中使用GUI创建的。我的目标是编写一个宏来导出通过“拖放”创建的模型所包含的所有数据和信息。我终于找到了它,从现在起,我的基础就是您对DiagramObjects的看法。谢谢: