Excel. Построить дерево TreeView

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Приветствую!

Все знают и хорошо помнят объект формы TreeView, строящий дерево элементов.
Его можно заполнять только программно, через код VBA.

Есть ли какой-либо готовый объект (готовая программа) для построения дерева в Excel или еще где, который просто конфигурируется каким-либо списком (файлом, массивом), а не в ручную и не программно?
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Я не знаю такого.
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Тоже не знаю такого. Но в VBA позволено создавать модули классов (Class Module). Можно один раз написать класс многоразового использования и потом таскать его с собой в любой нужный проект, да еще с исходниками. Как вариант можно попытаться строить TreeView на API, сложность только с hWnd у UserForm. Или создать свой собственный ActiveX Control на VB6 к примеру как оболочку вокруг TreeView. Интересная идея. Никто не хочет потрудиться и сделать свой бесценный вклад в фонд opensource? ;)
На заказ: VBA, Excel mc-black@yandex.ru
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

спасибо...
а использование формата xml и его представление в Excel может как решит проблему ?
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Avsha, не очень понял что вы хотите получить. Конечно можно описать дерево на XML и импортировать его в EXCEL. Но будет ли это удобно?
Не очень понятно в чём суть задачи ? Переносить деревья между компьютерами ?
Само дерево можно и эмулировать на рабочем листе EXCEL...
Возможно вам поможет: http://www.15seconds.com/issue/030827.htm
Андрей Энтелис,
aentelis.livejournal.com
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Aent, спасибо...

моя задача следующая...
1. Формируем структуру (содержимое) дерева в виде списка в удобном редакторе (например в Excel)
например такого формата...
---------------------------------
01.00.00.0.01,Завод,
01.01.00.0.02,Участок,
01.01.01.1.32,Технологическая схема участка 1,c:\source\file01.jpg
01.01.02.1.32,Технологическая схема участка 2,c:\source\file02.jpg
и т.д.
--------------------------
структура полей:
[01]Раздел / [01]Подраздел / [01]Пункт / [1]Признак выполнения команды операции (0/1) / [00]Номер иконки / [String]Наименование пункта / [String]Команда операции

2. Каким-либо объектом строим дерево по списку, созданным в п.1
первое - для просмотра
второе - для выполнения операции
в простейшем случае объект должен иметь на выходе одну текстовую переменную - выбранную строку определенной команды операции

Можно конечно запрограммировать TreeView,
но думал есть какой-то готовый объект типа календаря,
которому можно подсунуть список структуры в заданном формате , а он уже выдает результат выбранного пункта.

Или как-то преобразовать список, созданный в п.1 в xml, а затем уже просмотреть другим приложением?
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

А зачем другое приложение ?
IMHO правильнее сделать обвязку для вашего листа EXCEL:
показывать иконки, скрывать и разворачивать узлы и т.п.
Хотя, если задача состоит в удобном просмотре, то, конечно, можно и генерировать html
см. например:
http://rollerjm.free.fr/pro/Treeview/Treeview.html
http://www.treeview.net/treemenu/3fr_beenthere.html
http://www.artlebedev.ru/tools/technogr ... /treeview/
http://www.codeproject.com/KB/scripting ... eview.aspx
Андрей Энтелис,
aentelis.livejournal.com
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Aent, спасибо..., что вправили в нужное русло мои фантазии....

Буду делать нормальную обвязку TreeView в среде Excel :) тем более какие-то наработки уже есть...
------------------------
Microsoft Windows Common Controls 6.0 (SP6)
C:\WINDOWS\system32\MSCOMCTL.OCX
TreeView
ImageList
-----------------------------

Просто надеялся, что можно набить конфигурацию дерева в Excel,
превратить ее в какой-нибудь универсальный формат данных представления дерева, например xml,
и открыть таким же универсальным и готовым объектом... ;(
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Avsha, под "обвязкой" я имел в виду отнюдь не контрол на листе, а добавление к листу со сформированной в Excel структуре дерева необходимой функциональности.
Что же касается
Просто надеялся, что можно набить конфигурацию дерева в Excel,
превратить ее в какой-нибудь универсальный формат данных представления дерева, например xml,
и открыть таким же универсальным и готовым объектом...
То какой объект есть -web броузер, понимающий DHTML :)
Cоответствующий код получается с помощью XSLT для экспортированного из EXCEL XML файла c данными.
Правда, интуиция подсказывает мне, что вероятно проще будет сразу создавать DHTML из VBA.
Андрей Энтелис,
aentelis.livejournal.com
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Aent,
так если все есть, может приведете небольшой примерчик реализации,
чтобы начать изучение этих, мне непонятных DHTML, XSLT и XML с живого примера ;)

Свою реализацию дерева с помощью формы VBA и объектов TreeView в Excel
собираюсь также привести ...
Ответить