Author |
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"? Все шейпы на рисунке собраны в коллекцию. Просматривая эту коллекцию, можно найти нужный шейп (по имени или каким-то свойствам). Свойства доступны через ячейки шейп-листа (уже упомнутая таблица). Для выхода на эти ячейки существуют либо константы для указания секции, строки, ячейки в строке, либо некоторые ячейки имеют уникальные имена.
|
|
|
Aleksey
3 Posts |
Posted - 03/05/2003 : 07:42:04
|
Спасибо! Ответ "туда". Будем думать дальше. |
|
|
Aleksey
3 Posts |
Posted - 03/05/2003 : 07:46:41
|
Прочитал еще раз. Наткнулся на <Просматривая эту коллекцию...>. А как? |
|
|
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 |
|
|
|
Topic |
|
|
|