СПРАВКА Excel: 64-Bit Visual Basic for Applications Overview Running VBA code that was written before the Office 2010 release (VBA version 6 and earlier) on a 64-bit platform can result in errors if the code is not modified to run in 64-bit versions of Office. The problem with running legacy VBA code in 64-bit Office is that trying to load 64-bits into a 32-bit data type truncates the 64-bit quantity. This can result in memory overruns, unexpected results in your code, and possible application failure.You only need to modify VBA code if it runs in the 64-bit version of Microsoft Office.
все как один - "NEW". Базовые свойства и методы полностью одноименны и идентичны оригиналам. Но вся "вата" убрана. Интерфейс (мышка, клавиатура, встроенные контекстные меню) как в Win-меню. Возможности расширены. Мешок.новых возможностей. Без Implements Statement.
Непредвиденные ситуации могут существовать. Работа по выявлению неумолимо ведется. Файлы МОЛЧАЛИВО обновляются. Принципиальные изменения будут отмечены в теме. Просьба сверять и использовать последние (по дате создания) версии файлов.
Мы обязаны спасти мир от саблезубого поросенка Treeview(VB6)
Концепция меняется: Контрол TreeViewNEW можно также использовать:
ВАРИАНТ №1. Контрол TreeViewNEW - комфортная СМОТРЕЛКА данных Наипростейший базовый вариант. По свойствам и методам - ровно коротышка TreeView(VB6). И без затей. Три модуля класса .Вставляются в саму рабоче-текущую Книгу. Без интерфейса (Implements Statement)
Код автора переделан под автоматическую работу с Классами TreeViewNEW. ВАЖНО. В Вашей версии системы опция может не работать (вылетает с Error в строке с функцией AddressOf . Просто закомментируйте эту строку - опция работать не будет, но и Error вылетать не будет
Для детей - детские глаза. Для отрочества -Путевка в жизнь. Документальная и полностью дотационная. Для взрослого и сознательного - количество выпускаемой денежной массы равно количеству овеществленного труда {а не выдуманным currency boardr}. Отсуда, глядишь, и мирное небо над головой. В том числе и над собственной. Главное - за детей спокойно.
Или Вы про Treeview? Шибко не переживайте. Это- простоконтрол для VBA. Для народного хозяйства проку немного. Даже государственного языка не ведает.
Изменения: все Картинки входят своим ОРИГИНАЛЬНЫМ размером можно устанавливать Картинки РАЗНЫХ размеров. В т.ч. могут быть разными по размеру [.Image] и [.ExpandedImage] В отличии от Treeview(VB6), у которого все Картинки масштабируются к размеру первой входящей.
Что гармонично-развитее. Лучше один раз увидеть. Вновь:
TreeviewNEW- это тот жеTreeview(VB6)[структурно и понятийно], но без вышеобозначенных проблем с максимальным (для данного котрола) набором средств для обработки данных. Какие сам вспомнил
Чтобы не голословить; Прошу всех желающих присылать в эту тему текущие задачки с проблемами применения контрола Treeview. Буду демострировать и решать Так и проверим состоятельность темы В эфире могу быть по выходным
Спасибо Вам, Doober, за примеры и за хорошую идею:
Зачем каждый раз пузатить UserForm/Книгу увесистыми IPictureDisp.Пусть ImageList (в том числе) ест их прямо из папки: TreeView1.ImageListNEW = "C:\Users\for example John\Desktop\Flag" ' Путь папки с картинками
Ну уж н е т. В Справке-Примере описано, но раз сходу шашки наголо :
Да. Мир кишит призраками Treeview. Но мало крови, видимо, они успели попить. Пользователи вовремя сообразили ретушироваться. И правильно:
Если достаточно Treeview как "смотрелка" данных - то сразу корреспондирую в объятья предшественников А вот если необходим Treeview - о б р а б о т ч и к данных, то:
при нежном сравнении всех известных вариантов, обращу Ваше внимание (именно как специалиста) на три к р а е у г о л ь н ы х камня в устройстве любого Treeview:
1. (Не)наличие требованиясторонних библиотек. На это устремлены все вопрошающие взоры 2. преткновенное понятиеNodes. Агитка (в конце сообщения): 3. принцип счетаIndex'ов узлов: 3.1- но не только при первичном формировании узлов (для этого и "смотрелки" достаточно), - но и приобработке уже сформированнных данных (т.е. при изменении состава узлов - вставке новых, удалении, перемещении и т.п.) 3.2 -получение (куда-либо) измененных данных именно в том порядке, в каком напроектировали. Для этого все-таки придется решить эту задачку . Иначе - 'виг-вам', а не получение измененных данных в том порядке, в каком обработали. 3.3 А решение очевидное - счет Index'ов узлов в с е г д а (при любом изменении дерева) должен быть п о р я д к о в ы м сверху-вниз. И во всех коллекциях - тоже. Очевидное, да уклонистски-игнорируемое всеми Спецами Excel (по технически-программным причинам)
Фавориты забега: Treeview(VB6) / побеспокоенные зарубежные товарищи п.1 "-" / "+" п.2 "+" / "-" п.3 "-" / "-" Только при положительном решении комплексно всех трех проблем - возможны все остальные навороты Treeview - о б р а б о т ч и к а данных.
И, желательно, без Public-хлама (- такие прыщики внутренних 'технических' процедур, светящиеся в Пользовательсом Контексном меню Свойств) А визуальный дизайн при этом - двестидвадцатьпятая ватанакиселе. Для кучи. По-хихикать.
При исполнении таких желаний - есть вероятность полюбить контрол Treeview. Хоть мой, хоть свой, хоть 'того парня' П о ч и т а й т е справки к Treeview. Эти-другие. Не спешите с огнестрельными выводами. У Treeview(VB6), к примеру, наизамечательнейшая справка.
OFF Картинки я, как Вы метко подметили, позаимствовал. Но Вы метко н е заметили, что данные картинки не являются никакой составляющей устройства ихнего Treeview. Служат лишь примером набора картинок (или чего-угодно). Позаимствовал и все. И никакой понятийно-связующей нити у меня с ихним проектом нет. Наоборот - конфликтующие п р и н ц и п и а л ь н ы е противоположности. Наш ответный удар. Еще я позаимствовал пример картинки "Колобок" . Понятия не имею у кого. Rem Визуальное перечисление однородных по смыслу картинок (например: флагов) - идеально демострирует свойство TreeView1.ImageList. Подскажите, где берегут флаги Советских Республик -> изменим примеры картинок -> перережим пуповину вражеских технологий
Для уважаемого SuperCat 1. А что мне тогда сказать людям, которые уже нашли в себе силы и желание и разобрались в деталях происходящего? 2. Напишите свой код. У Вас получится. Только в мой, при этом, пожалуйста, не подглядывайте. Чтоб все по-честному. Мне-то в о о б щ е некуда было подглядывать.
На самом деле, я буду рад любым сообщениям. Потому что они, хоть и ненадолго, но поддержат тему "на плаву". В ожидании тех людей, кто входил в ближний бой с TreeVew(VB6) и кому контрол Treeview действительно нужен. Их мнение мне, конечно, очень дорого.
Все познается в мучениях. В мучениях с TreeVew(VB6)
Величайшая благодарность и поклон до земли Сергею [Skif-F] за личную помощь при работе над проектом. Без его понятийной и моральной поддержки не бывать бы никаким TreeviewNEW
файл "Справка-Пример" из сообщения удален СергеемКр
Dim myMenu As CommandBar, MenuItem As CommandBarControl
Set myMenu = CommandBars.Add(Name:="myMenu", Position:=msoBarPopup, Temporary:=True)
Set MenuItem = TreeViewMenu.Controls.Add(Type:=msoControlButton, Temporary:=True)
With MenuItem: .Caption = myMenu": .OnAction = "Macro": End With
ВОПРОС: Как записать .OnAction [= String], если процедура должна находиться в Class'е (а не в стандартном модуле) ?
Rem Такие конструкции не помогают: .OnAction = "'" & ThisWorkbook.Name & "'!" & "Me.Macro" .OnAction = "Application.Run Me.Macro" .OnAction = "!<Me.Macro>" Или получать процедуру из Class'а не получиться?
ДАНО: Активировали (любую) ячейку внутри [именованного] диапазона ВОПРОС: Как получить Имя ( или хотя бы Адрес) диапазона? Наподобие rName = ActiveCell.Range.Name
Rem UsedRange не подойдет (см файл) Rem У Excel это получается (при определении данных для "Сводной таблицы" или "Таблицы"):