Как из VBA узнать координаты узлов фигуры в Word2003

Программирование на Visual Basic for Applications
dima-pol
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 03.11.2008 (Пн) 17:47

Как из VBA узнать координаты узлов фигуры в Word2003

Сообщение dima-pol » 15.03.2015 (Вс) 12:05

Я нарисовал многоугольник в Word2003. Мне нужно узнать координаты узлов. В справке есть пример:
Код: Выделить всё
Set myDocument = ActiveDocument
With myDocument.Shapes(3).Nodes
    pointsArray = .Item(2).Points
    currXvalue = pointsArray(1, 1)
    currYvalue = pointsArray(1, 2)
    .SetPosition 2, currXvalue + 200, currYvalue + 300
End With

Я немного его переделал, сообразно моему рисунку:
Код: Выделить всё
Dim pointsArray(1, 2), currXvalue, currYvalue
With ActiveDocument.Shapes(1).Nodes
    pointsArray = .Item(2).Points
    currXvalue = pointsArray(1, 1)
    currYvalue = pointsArray(1, 2)
End With

Однако при запуске возникает сообщение "Can't assign to array" на строке:
"pointsArray = .Item(2).Points"
Если исправить определение на
Код: Выделить всё
Dim pointsArray as Variant, currXvalue, currYvalue
то в той же строке возникает сообщение "Type mismatch"

Как в VBA правильно использовать свойство Points для получения координат узла?

dima-pol
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 03.11.2008 (Пн) 17:47

Re: Как из VBA узнать координаты узлов фигуры в Word2003

Сообщение dima-pol » 15.03.2015 (Вс) 16:47

Как мне сообщили в другом форуме, приведенный выше код нормально работает в Word 2010, а для Word2003 его надо переписать так:
Код: Выделить всё
Dim pointsArray As Variant

Set Tbox = ActiveDocument.Shapes(1)
With Tbox.Nodes
    pointsArray = .Item(1).Points
    currXvalue = pointsArray(1, 1)
    currYvalue = pointsArray(1, 2)
End With


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

    TopList