Author |
Topic |
|
sWap
2 Posts |
Posted - 09/19/2006 : 00:12:37
|
Приветстую. Писал на всём - теперь пришлось на VBA Господа такой вопрос Как на этом языке под Визио взять все элементы на странице, линии там.. соединяющие произвольные блоки, у блоков свои какие-то как я понял кастомные свойства. Тоесть как мне получить коллекцию всего на странице и как прошерстить её? Прошу заранее прощения за подобный простой вопрос, но просто с ВБА работать надо быстро, а вижу его в первый раз.
Есть тут что-нить типа рефлекшена, чтоб если разнородные элементы лежат просто пробежать по их пропертям и всё как бы воспроизвести в памяти. просто смысл такой, что что-то типа сохранения структуры в базу надо реализовать. И потом сответственно восстановление из базы на другую страницу
|
|
Tumanov
Russia
1198 Posts |
Posted - 09/19/2006 : 07:41:52
|
Блоки, линии и все прочее обзываются одним словом - шейп (Shape). Все элементы на странице - это коллекция шейпов (Shapes). В ней - все. Если отталкиваться от активной страницы, то первый элемент коллекции выглядит как ActivePage.Shapes(1) А дальше надо смотреть свойства шейпов.
|
|
|
brace
Russia
358 Posts |
Posted - 09/19/2006 : 09:23:31
|
визио умеет сбрасывать инфу в БД через ODBC (Open DataBase Connectivity) но любимая БД у визио это ACCESS делайте так Tools > Add-Ons >Visio Extras > Database Export Wizard
|
|
|
sWap
2 Posts |
Posted - 09/19/2006 : 14:18:06
|
А как достать "все" свойства у шейпа. Что-то типа рефлекшена? |
|
|
brace
Russia
358 Posts |
Posted - 09/19/2006 : 15:35:02
|
все свойства всех шейпов в одну таблицу !!! есть штатное средство Tools > Reports можно и через VBA но это не мой профиль. |
|
|
Tumanov
Russia
1198 Posts |
Posted - 09/19/2006 : 18:28:31
|
У каждого шейпа есть большая таблица - ShapeSheet. Она порублена на секции, строки, ячейки. В этой таблице описаны все свойства и все поведение шейпа. Добираться к ячейкам можно либо через индексы (секции, строки, ячейки) либо по именам ячеек. Например, ActivePage.Shapes(1).Cells("Width") даст ширину первого шейпа на активной странице. Некоторые свойства можно добыть и проще, именно как свойство объекта Shape, но таких мало. А через ячейки ShapeSheet доступно все. Так что изучайте ShapeSheet. |
|
|
|
Topic |
|