我想为iGrafx编写一个宏,它将检查用户模型创建的对象数量并检查其类型(例如,行,块等)。要在写简单的循环中执行此操作,但我的问题是 - iGrafx对象具有名称Shape1,Shape2或Line1,Line2,如何编写循环,我可以使用TypeOf并添加到变量名称每次循环时形成一个数字?< / p>
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
答案 0 :(得分:0)
这是一个平底船,因为我之前从未使用过iGrafx;如果他们坚持在Word VBA和Excel VBA中建立的对象模型约定,那么我猜测DiagramObjects集合有一个Item方法。
procesObjectsTypes(index - 1) = TypeName(Document.ActiveDiagram.DiagramObjects.Item(index)) & indexString