Вам поможет функция AddNamedRow:
quote:
retVal = object.AddNamedRow (Section, RowName, RowTag)
retVal - Integer. The row number of the new row.
object - Required. An expression that returns a Shape object.
Section - Required Integer. The section in which the row is to be added.
RowName - Required String. The name of the new row.
RowTag - Required Integer. The type of row to be added.
для CustomProperties значение Section равно 243 (это можно посмотреть в хелпе самого Визио: Help -> Developer Reference -> Microsoft Office Visio Automation Reference -> Enumerations - > VisSectionIndices Constants)
для RowTag подходит значение по умолчанию - 0 (Help -> Developer Reference -> Microsoft Office Visio Automation Reference -> Enumerations - > VisRowTags Constant)
эти константы можно конечно найти и в пространстве имен Visio
например:
Visio.Shape shape;
int retVal;
retVal = shape.AddNamedRow(243,"имя свойства", 0)
//или
retVal = shape.AddNamedRow(Visio.VisSectionIndices.visSectionProp,"имя свойства", Visio.VisRowTags.visTagDefault)
теперь у нас есть строка в CustomProperties шейпа с именем "имя свойства".
Изменять значение ее ячеек можно с помощью функции CellsSRC.