Author |
Topic |
|
ssergey
Russia
3 Posts |
Posted - 07/18/2006 : 19:07:26
|
На документе три шейпа, Sheet.3 это группа в которой Sheet.1 и Sheet.2. Задача состоит в том чтобы Sheet.1 вывести из группы и переподчинить странице. Делаю:
ActivePage.Shapes("Sheet.1").Parent = ActivePage.PageSheet
Выскакивает exception. Хотя в документации сказано: If you want to assign a page or master to be the parent of a shape, you must assign the Shape object returned by the Page or Master object's PageSheet property.
Кто знает, что делать ????
|
Edited by - ssergey on 07/19/2006 02:51:15 |
|
Tumanov
Russia
1198 Posts |
Posted - 07/18/2006 : 20:15:41
|
Непонятно... На всякий случай проверил у себя. Скопировал строчку отсюда в макрос. Все сработало без проблем. Может в процессе экспериментов какие-то другие группы образовались? Посмотрите в Drawing Explorer Window, все ли у Вас так, как написали. |
|
|
ssergey
Russia
3 Posts |
Posted - 07/19/2006 : 02:50:50
|
quote: Originally posted by Tumanov
Непонятно... На всякий случай проверил у себя. Скопировал строчку отсюда в макрос. Все сработало без проблем. Может в процессе экспериментов какие-то другие группы образовались? Посмотрите в Drawing Explorer Window, все ли у Вас так, как написали.
Спасибо за ответ, этот вопрос очень важен для меня.
Все делаю чисто: новый документ, blank drawing, два прямоугольника, группировка, Alt-F11,
Option Explicit Public Sub s() ActivePage.Shapes("Sheet.1").Parent = ActivePage.PageSheet End Sub
Не работает :(((( Посмотрите пожалуйста, что не так? http://pravoslavievbytu.narod.ru/drawing1.vsd |
|
|
Tumanov
Russia
1198 Posts |
Posted - 07/19/2006 : 09:39:48
|
Да, не работает. Вернее, в Visio 2002 работает, а в Visio 2003 не работает. Причины не знаю. В документации вроде ничего не говорится. Может пока попытаться действовать другими методами? Если Ваша задача - исключить объект из группы, то можно использовать метод RemoveFromGroup. Только он работает через Selection... Посмотрите вот такой макрос. (Снимается предыдущее селектирование, через visSubSelect селектируется нужный шейп внутри группы, селектированное удаляется из группы и ему больше некуда деться, как только попасть на страницу). Public Sub s() Dim Sh As Visio.Shape Set Sh = ActivePage.Shapes("Sheet.1") ActiveWindow.DeselectAll ActiveWindow.Select Sh, visSubSelect ActiveWindow.Selection.RemoveFromGroup End Sub |
|
|
ssergey
Russia
3 Posts |
Posted - 07/19/2006 : 11:23:55
|
Спасибо, я уже тоже нашел RemoveFromGroup. К сожалению, это надо делать несколько раз - если шейп в группе, которая еще в группе, и так далее.
Кроме того, правильно ли я понимаю, что надо обязательно сделать страницу, с которой работаю, активной, selection иначе создать нельзя?
Нельзя ли в microsoft-е попросить исправить ошибку?
Спасибо. |
|
|
|
Topic |
|
|
|