строил коннектор по точкам. ф-я принимает коллекцию с координатами точек в координатах листа в дюймах (внутренние единицы визио), далее с пересчетом в координаты шейпа (коннектора). первый элемент коллекции - текст (пишется над коннектором).
у меня работало без вопросов (визио 2010). может поможет.
Код:
'построение коннектора из координат
Sub BuildConnectorByPoints(col As Collection)
Dim sh As Shape, j As Long, k As Long, x1 As Double, y1 As Double
Set sh = ActivePage.Drop(Application.ConnectorToolDataObject, 0, 0)
With sh
'перепрокладывать маршрут нельзя
'.CellsU("ConFixedCode").ResultIU = 3
.Text = col(1)
.CellsU("BeginX") = col(2)
.CellsU("BeginY") = col(3)
.CellsU("EndX") = col(col.Count - 1)
.CellsU("EndY") = col(col.Count)
k = (col.Count - 1) / 2
For j = 0 To k - 1 'заполнение геометрии коннектора
If Not .RowExists(visSectionFirstComponent, visRowVertex + j, 0) Then
.AddRow visSectionFirstComponent, visRowVertex + j, visTagLineTo
End If
x1 = col(2 + j * 2)
y1 = col(3 + j * 2)
.XYFromPage x1, y1, x1, y1
.CellsSRC(visSectionFirstComponent, visRowVertex + j, visX).ResultIU = x1
.CellsSRC(visSectionFirstComponent, visRowVertex + j, visY).ResultIU = y1
Next j
For j = .RowCount(visSectionFirstComponent) - 2 To k Step -1 'убрать оставшиеся лишние строки коннектора
If .RowExists(visSectionFirstComponent, visRowVertex + j, 0) Then .DeleteRow visSectionFirstComponent, visRowVertex + j
Next j
End With
End Sub