All Forums
 Категория Visio
 Форум Вопросы и ответы
 Actions
Author Previous Topic Topic Next Topic  

ukreni

Ukraine
35 Posts

Posted - 10/01/2008 :  14:32:53
Подскажите пожалуйста как правильно решить следующую задачу.
1. Есть макрос - myMacro
2. У shape есть Custom Property - id - FixedList

Необходимо, чтобы myMacro выполнялся по изменению id.

Tumanov

Russia
1198 Posts

Posted - 10/01/2008 :  15:50:27
Сначала цитата из форума:
quote:
Последовательность действий следующая:
1. Объявить страницу WithEvents
Например, Dim WithEvents pgObj As Visio.Page
2. После этого в VBA в том окошке, где сейчас есть только General и Document появится Ваш объект pgObj и в правом окошке можно будет выбрать событие, для которого можно написать обработчик. Например, CellChanged.
3. Написать этот обработчик
4. Связать Ваш новый тип с конкретным объектом
Например, Set pgObj = ActivePage
Пункт 4 обычно вставляется в обработчик DocumentOpened или что-нибудь похожее. После его выполнения события от этого объекта начнут отслеживаться.

Событие будет появляться после любого изменения ячейки в любом шейпе страницы. Значит в начале обработчика Вам надо отфильтровать лишнее и выбрать только изменения нужной ячейки в нужном шейпе. Например, по именам, по типу шейпа или наличию какого-то флага в шейпе. А после фильтрации уже можно вызывать myMacro.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)