2011-03-13 27 views
1

我需要一些關於如何查詢vb或vba中的VISIO Shape.cells集合的建議。檢查Visio Shape.Cell集合

我已經寫了一個應用程序來放置一個頁面上的形狀,我可以在將它放在頁面上後更改其名稱。現在我想檢查形狀細胞集合。

謝謝

回答

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來同時提取所有這些公式/結果。

+0

感謝您的回覆。我會嘗試你的建議。 – Erwin1 2011-03-14 13:31:42

+0

它的工作原理。謝謝。 – Erwin1 2011-03-14 13:55:42