powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как из VBA узнать координаты узлов многоугольника в Word2003?
17 сообщений из 17, страница 1 из 1
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905103
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я нарисовал многоугольник в Word2003. Мне нужно узнать координаты узлов. В справке есть пример:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
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


Я немного его переделал, сообразно моему рисунку:
Код: vbnet
1.
2.
3.
4.
5.
6.
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" на строке:
Код: vbnet
1.
pointsArray = .Item(2).Points


Как в VBA правильно использовать свойство Points для получения координат узла?
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905107
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий П.,

поппробуй Dim pointsArray As Variant
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905120
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
В этом случае выдается "Type mismatch"
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905126
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дайте документ с примером и неработающим кодом, чтобы не гадать.
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905216
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий П.,
Код: vbnet
1.
Dim pointsArray() As Single
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905218
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или просто Dim pointsArray , в Variant можно засунуть что угодно, хоть массив, хоть объект...
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905222
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КазанскийИли просто Dim pointsArray , в Variant можно засунуть что угодно, хоть массив, хоть объект...Shocker.Proпоппробуй Dim pointsArray As VariantДмитрий П.В этом случае выдается "Type mismatch"
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905224
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КазанскийДмитрий П.,
Код: vbnet
1.
2.
Dim pointsArray() As Single
Или просто Dim pointsArray

В обоих случаях выдается "Type mismatch"

Даю документ "Многоугольник.doc"
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905225
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий П.Даю документ "Многоугольник.doc"упс
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905229
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Переслал документ на Email, т.к. тут пока не получилось
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905230
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий П.Переслал документ на Email, т.к. тут пока не получилосьпри предварительном просмотре приложенный документ стирается. Вы - старый пользователь, включите в профиле новый дизайн и быстрый ответ - там такого глюка нет. Ну или прикладывайте файл после предварительного просмотра
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905232
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что интересно, pointsArray тут вообще не причем, ругается на правую часть оператора присваивания. Пытаюсь понять, в чем прикол
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905235
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЧто интересно, pointsArray тут вообще не причем, ругается на правую часть оператора присваивания. Пытаюсь понять, в чем приколв 2010 код выполняется без проблем
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905237
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даю документ "Многоугольник.doc" (попытка №2)
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905238
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProShocker.ProЧто интересно, pointsArray тут вообще не причем, ругается на правую часть оператора присваивания. Пытаюсь понять, в чем приколв 2010 код выполняется без проблемв 2003 при любой попытке любым способом обратиться к свойству Points выдает ошибку
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905242
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут решение
https://groups.google.com/forum/#!topic/microsoft.public.word.vba.general/37QCKvVR3fc

решение странное, но оно работает, проверил в 2003
...
Рейтинг: 0 / 0
Как из VBA узнать координаты узлов многоугольника в Word2003?
    #38905282
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Спасибо за ссылку!
Я сообразно подправил свой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
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 


Он работает! Получается, для 2003, необходимо явно задать (промежуточный) объект Shapes (Tbox)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как из VBA узнать координаты узлов многоугольника в Word2003?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]