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

Aleksey

3 Posts

Posted - 03/04/2003 :  11:56:14
Подскажите пожалуйста, как задать требуемый (а не присваеваемый)номер и свойства элемента (узел и ветви графа), и как затем организовать ссылку в проекте VBA на эти данные.(где это все хранится?)Спасибо.
P.S. Задача связана с рачетом вентиляционных систем.

Tumanov

Russia
1198 Posts

Posted - 03/04/2003 :  13:58:11
Тяжеловато доходит смысл вопроса. Так что не обижайтесь, если ответ будет "не туда".
"как задать требуемый (а не присваеваемый)номер?"
Номер (а точнее имя, которое может включать и номер) задать нельзя. Это делается только автоматикой. А для своей идентификации можно использовать поля данных, пользовательские свойства, текстовое поле, вводить дополнительные поля и т.д.
"как задать свойства"?
Каждому элементу (шейпу) уже сопоставлен большой массив данных (типа электронной таблицы). Там в ячейках определены геометрия, шрифты, цвета и т.д. Туда же можно добавлять и ячейки пользовательских свойств.
Некоторые мастер-шейпы на тарфаретах уже имеют поля для пользовательских свойств, открываемые по Shape / Custop Properties. Если при этом пишут No custom properties exist, то можно нажать OK и здесь же определить эти свойства, а затем и ввести в них значения.
"как затем организовать ссылку в проекте VBA"?
Все шейпы на рисунке собраны в коллекцию. Просматривая эту коллекцию, можно найти нужный шейп (по имени или каким-то свойствам). Свойства доступны через ячейки шейп-листа (уже упомнутая таблица). Для выхода на эти ячейки существуют либо константы для указания секции, строки, ячейки в строке, либо некоторые ячейки имеют уникальные имена.
Go to Top of Page

Aleksey

3 Posts

Posted - 03/05/2003 :  07:42:04
Спасибо! Ответ "туда". Будем думать дальше.
Go to Top of Page

Aleksey

3 Posts

Posted - 03/05/2003 :  07:46:41
Прочитал еще раз. Наткнулся на <Просматривая эту коллекцию...>. А как?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 03/05/2003 :  11:39:56
Ну, например, вот так собираем имена и идентификаторы всех шейпов в активном документе и засовываем весь этот список в текстовый блок первого шейпа.

Sub ttt()
s1 = ""
For i = 1 To ActivePage.Shapes.Count
s1 = s1 + "Name= " + ActivePage.Shapes(i).Name
s1 = s1 + " Id= " + Str(ActivePage.Shapes(i).ID) + vbCrLf
Next
ActivePage.Shapes(1).Text = s1
End Sub
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)