检查Visio Shape.Cell集合

时间:2011-03-13 23:04:45

标签: vba visio

我需要一些关于如何在vb或vba中查询VISIO Shape.cells集合的建议。

我已经编写了一个应用程序来删除页面上的形状,我可以在将其放在页面上后更改其名称。现在我想检查一下形状细胞集合。

由于

1 个答案:

答案 0 :(得分:4)

Visio形状细胞分为不同的部分。此类部分可能包括用户单元格,操作或字符设置。还有一系列命名单元格,您只能(我认为)通过名称(即PinX或PinY)进行访问。

因此,要查询形状的单元格,首先必须弄清楚您正在谈论的单元格的哪个部分。要遍历单元格部分,首先获取该部分中的行数,然后使用形状对象上的CellsSRC方法遍历该部分。

Dim TheShp As Visio.Shape
Set TheShp = ActiveWindow.Selection.Item(1)
Dim TheSec As Visio.Section
Dim TheCell As Visio.Cell
Set TheSec = TheShp.Section(visSectionUser)
Dim RowNum As Long
For RowNum = 0 To TheSec.Count - 1
    Set TheCell = TheShp.CellsSRC(visSectionUser, RowNum, 0)
    Debug.Print TheCell.Formula
    Debug.Print TheCell.Result(visNone)
Next CellNum

如果有很多形状的细胞,以这种方式循环可能会很慢。如果您需要访问大量单元格的公式或结果,则Page对象上有GetFormulas和GetResults方法,这些方法采用SRC值和形状ID的数组,它们将同时提取所有这些公式/结果。