Visio Guy

Visio Discussions => Programming & Code => Topic started by: marko999 on August 09, 2012, 06:50:34 PM

Title: Shape.RowType is always -1
Post by: marko999 on August 09, 2012, 06:50:34 PM
Hi all,

I'm trying to get Geometry data, and I need RowType property for each of rows in Geometry sections.
But, for some reason, RowType function always returns -1, I don't get it why...
Can somebody help?


'Get the shape from the active page.
Set vsoShape = ActivePage.Shapes(1)

'Get the count of Geometry sections in the shape.
'(If the shape is a group, this will be 0.)
intSections = vsoShape.GeometryCount

'Iterate through all Geometry sections for the shape.
'Because we are adding the current Geometry section index to
'the constant visSectionFirstComponent, we must start with 0.
For intCurrentGeometrySectionIndex = 0 To intSections - 1

    'Set a variable to use when accessing the current
    'Geometry section.
    intCurrentGeometrySection = visSectionFirstComponent + intCurrentGeometrySectionIndex
   
    'Get the count of rows in the current Geometry section.
    intRows = vsoShape.RowCount(intCurrentGeometrySection)
   
    'Loop through the rows. The count is zero-based.
    For intCurrentRow = 0 To (intRows - 1)
   
        Debug.Print vsoShape.RowType(intCurrentGeometrySection, intRows) 'always -1
       
       'Get the count of cells in the current row.
       intCells = vsoShape.RowsCellCount(intCurrentGeometrySection, intCurrentRow)
       
       'Loop through the cells. Again, this is zero-based.
       For intCurrentCell = 0 To (intCells - 1)
          Debug.Print vsoShape.CellsSRC(intCurrentGeometrySection, intCurrentRow, intCurrentCell).LocalName & ": " & vsoShape.CellsSRC(intCurrentGeometrySection, intCurrentRow, intCurrentCell).Result("mm")
       Next intCurrentCell
       
    Next intCurrentRow
Next intCurrentGeometrySectionIndex
Title: Re: Shape.RowType is always -1
Post by: aledlund on August 09, 2012, 10:15:58 PM
"Debug.Print vsoShape.RowType(intCurrentGeometrySection, intRows) 'always -1"

possibly because intRows as an index will point past the last row (index is 0 based)?

may be rather than intRows you might want to use intCurrentRow?

al
Title: Re: Shape.RowType is always -1
Post by: marko999 on August 10, 2012, 02:56:50 PM
Quote from: aledlund on August 09, 2012, 10:15:58 PM
"Debug.Print vsoShape.RowType(intCurrentGeometrySection, intRows) 'always -1"

possibly because intRows as an index will point past the last row (index is 0 based)?

may be rather than intRows you might want to use intCurrentRow?

al

Ooooh man, I can't get use to this VBA thing :D (blush)
Thank you very much and I apologize for this stupid question, moderators you can delete it! :)

Marko
Title: Re: Shape.RowType is always -1
Post by: aledlund on August 10, 2012, 02:58:18 PM
My wife knows how things are going when I come up and say "I learned a lot today"
da nada,
al
Browser ID: smf (is_webkit)
Templates: 1: Printpage (default).
Sub templates: 4: init, print_above, main, print_below.
Language files: 1: index+Modifications.english (default).
Style sheets: 0: .
Hooks called: 50 (show)
Files included: 25 - 925KB. (show)
Memory used: 776KB.
Tokens: post-login.
Cache hits: 7: 0.00139s for 22,302 bytes (show)
Cache misses: 1: (show)
Queries used: 9.

[Show Queries]