如何查看`myShape.Cells()中的所有键值对?

时间:2016-05-10 13:14:58

标签: vba visio visio-vba

我最近在Visio中用VB编程 我对myShape.Cells("Width")myShape.Cells("PinX")非常好奇,我的意思是代码的.Cells("...")部分。我的程序使用了很多次 我想更多地了解它们,但我找不到任何具体的解释。

谁定义,以及.Cells()所有键值对的内容。
我在这个网站上看到有人使用someShape.Cells["Width"]指向形状宽度的值。

所以:

  1. 我想知道.Cells()是否是现实中的集合或地图(字典)。请给我一些解释或文件,我可以阅读以寻求帮助。
  2. 我试图将myShape.CellsmyShape.Cells()放在观察窗口中,但它不起作用。它告诉我一些错误..
    那么如何查看.Cells()中的所有键值对,给我一些代码可以用来在即时窗口中显示键值对将是一个很大的帮助。
  3. 非常感谢。

1 个答案:

答案 0 :(得分:0)

在Visio中有两种访问ShapeSheet单元格的方法。一个是名字,使用你提到的Shape.Cells (or CellsU)方法,另一个是使用Shape.CellsSRC的索引。第二种方法通过Section,Row和Column显示细胞的结构。请注意,稍微令人困惑的是,SRC结构不一定是您在UI中打开ShapeSheet时可以看到的单元格的精确复制品,它可以组织成更加用户友好的东西。

SRC索引通常表示为枚举,您可以look up in the SDK以及单元格名称等效。

所以更直接地回答你的问题:

  1. 是.Cells一个集合 - 不是你可以调用和检索所有值的集合。您可以使用CellsSRC循环遍历单元格,但是您会发现单元格不一定是连续的,还有许多未命名或内部单元格,您无法通过api使用。有关详细信息,您可能会发现此链接很有用https://msdn.microsoft.com/en-us/library/aa201764%28v=office.10%29.aspx
  2. myShape.Cells()不起作用 - cells方法接受一个参数,即单元格的字符串名称。这通常是(但不总是)您在ShapeSheet窗口中看到的名称。否则,您必须在文档中查找名称 - Cells reference
  3. 最后一点是,您应该尝试使用CellsU方法而不是Cells方法。前者使用通用语法访问单元名称,后者使用本地语法,这可能因不同的语言环境而异。