Страницы: 1 2 След.
RSS
Как экспортировать/импортировать значки на кнопках панелей инструментов?
 
Написал несколько полезных в повседневной работе макросов.    
Вывел для их вызова кнопки на панель управления.    
Попыхтел, сделал к ним соответствующие значки (предлагаемые на выбор по "Изменить значек на кнопке" 42 штуки - полный отстой и их очень мало). Часть значков к счастью удалось просто переделать из имеющихся, а часть - "содрать" из Word, Access, Visio, PowerPoint.  
Та ещё работка! Времени заняла не намного меньше, чем написание и отладка самих макросов.  
А тут друг увидал, как удобно работать с моими макросами и попросил их меня списать...  
Мне не жалко. Код я ему, конечно, переслал. А вот картиночки к кнопочкам...?  
Я, конечно, могу ему скинуть ещё и Excel11.xlb, где прописана вся моя настройка панелей, кнопок и картинок на них.  
Но у него есть свой Excel11.xlb, который он совсем не желает заменять на мой, настроенный "под меня" и нацеленный на мой Personal.xls  
Мы, конечно, нашли выход из положения (т.к. макросов и самодельных рисунков кнопок к ним было всего 5 штук) но уж больно муторный:    
1. Я на своем компе открыл Word и создал в нем новую панель инструментов с именем "Значки"  
2. Вытащил на эту новую панель инструментов 5 кнопок "Копировать". Можно было, конечно, вытаскивать кнопки любых команд Word, но "Копировать" по крайней мере ничего не делает с документом. А кнопки "Настраиваемая кнопка" с жёлтым смайликом как в Excel в Word я что-то не нашел...  
3. Скопировал созданные мною 5 значков с кнопок Excel и вставил эти значки на 5 кнопок панели инструментов "Значки" Word  
4. Закрыл Word и переслал его Normal.dot другу.  
5. Друг "спрятал" свой Normal.dot , а вместо него положил мой и запустил Word  
6. Скопировал значки кнопок панели "Значки" Word и вставил их на кнопки вызова моих макросов в своём Excel.  
 
Ну,в общем, очень "геморрабельно"...  
Возникли в связи с этим вопросы:  
1. В какой библиотеке (.dll .icl .ocm ?) хранятся значки 42-х кнопок, предлагаемых на выбор Excel ?  
2. Если известна библиотека, то пытался ли кто-нибудь редактировать или заменять значки в ней?  
3. Если библиотека неизвестна или не поддаётся редактированию, то может ли кто-нибудь продложить менее трудоёмкий процесс переноса значков кнопок с компьютера на компьютер?  
4. А если не рисовать нужный значок, а взять где-нибудь картинку 16х16 пикселей (уже готовую .ico или самому уменьшить большую картинку до нужного размера), то как её  файл подставить в кнопку? Может, это кто-нибудь из гуру сможет на VBA сделать ?  
 
Ведь если программно значки на кнопках доступны для изменения, то, наверное, можно сделать программу, которая создаст прямо в Excel новую панель инструментов "Значки" и поместит на неё одну кнопку (например, стандартный жедтый смайлик). А при нажатии на эту кнопку будет выводиться запрос места расположения файла-картинки. После указания пути файла значек на кнопке меняется на указанную картинку. А потом уже, надеюсь, можно будет этот значок стандартным образом скопировать и вставить на свою кнопку вызова нужного макроса.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Ну, задать-то картинку кнопке на форме из внешнего BMP-файла я ещё как-нибудь сумею... Никогда этого не делал, но в параметрах, кажется, для этого есть свойство Picture.  
А вот потом программно присвоить значок с конкретной кнопки формы конкретной кнопке на панели инструментов - это для меня ещё пока "высший пилотаж".  
Я кнопки делаю "ручками" из кнопки "Настраиваемая кнопка" и размещаю их на имеющихся панелях инструментов, содержащих близкие по смыслу "родные" кнопки, а потом назначаю на свои кнопки макросы. При этом со временем расположение кнопок может изменяться не только внутри изначально заданной панели, но и между панелями или "прятаться" в раскрывающиеся меню...  
Это что же мне, мало с того, что в Personal.xls (или в надстройке) всегда с собой форму с образцами рисунков таскать, так ещё и каждый раз при перемещении/изменении кнопки ещё и код переписывать?  
Или это назначение картинок делается один раз, а потом Ёксель уже помнит картинки и форму можно удалить?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
The_Prist,  
я правильно понял, что Эксель запоминает картинки на кнопках (в Excel11.xlb) только если они редактировались встроенным редактором?  
А если их программно задать, то потом после перезагрузки сбрасывает их в дефоулт?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
А если программно создать новую панель инструментов, на ней программно - кнопки с картинкам? А потом сразу войти в режим настройки и скопировать программно установленные картинки с этих кнопок на свои? Ведь такие копирования Excell делает и потом помнит.  
Или при входе в режим настройки кнопки программно созданной панели сбросятся в исходное состояние и картинки на них не будет?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
И всё-таки, где и как хранятся в Ёкселе 42 предлагающиеся на выбор картинки?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Библиотеки картинок в Windows хранятся в папке:  
C:\Windows\System32\shell32.dll  
C:\Windows\System32\moricons.dll  
C:\Windows\System32\pifmgr.dll  
C:\Windows\System32\program.exe  
 
только я не знаю, использует ли именно эти Excel
 
У меня на компе уже давно стоит старенькая, но очень хорошо и шустро работающая программка Axialis AX-Icons, которая умеет просматривать иконки везде, где они только не спрятаны...  
Не поленился. посмотрел:  
C:\WINDOWS\system32\progman.exe - 49 иконок  
C:\WINDOWS\system32\pifmgr.dll - 38 иконок  
C:\WINDOWS\system32\shell32.dll - 238 иконок  
C:\WINDOWS\system32\moricons.dll - 114 иконок  
НИ В ОДНОМ из этих файлов нет тех 42 иконок, предлагаемых Exlel для выбора (а они очень характерно-дебильные, поэтому пропустить даже при быстром просмотре, например, картинки "Хрюшка-копилка", "Бегущий пешеход", "Грустный серый смайлик", "Два отпечатка ног" просто невозможно)  
Какие ещё у народа есть предположения, где картинки зарыты?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Алекс выложи личку. я тебе файлик сброшу с примерчиком.
 
VovfK,  
а что, ты научился значки кнопок программно менять?  
Тогда поделись, пожалуйста, опытом на мой ящик:  
AStasenko@yandex.ru
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Алекс, всречай...
 
VovaK,  
спасибо за информацию. Хорошо, что там есть и ссылки на первоисточники.  
Сейчас, к сожалению, изучать некогда, только бегло просмотрел файлы.  
Руководство говорит, что надо срочной работой заниматься, а не в Планете сидеть...  
Я из-за Планеты даже в почту заглянуть забыл, а там оказывается, срочная работа.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Среди материалов, скинутых VovaK, есть сайт http://www.erlandsendata.no/english/index.php?d=endownloadcommandbars и одна очень интересная надстройка, которая ищет на компе и выводит 10000 доступных Ёкселю значков на панелях инструментов: CommandBar Tools ( http://www.erlandsendata.no/downloads/commandbartools.zip ), но её код VBA закрыт паролем и посмотреть, где она ищет иконки невозможно.  
Кто знает, где посмотреть методы взлома паролей проектов VBA?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Алекс, четыре последних слова сообщения в поисковый запрос по Интернету. А тут мы такие вопросы не обсуждаем :-)
 
а в 2007 возможно воспользоваться № ID? Я создавал свою ленту по книжке и там было сказано испоьзовать имена иконок либо рисовать свои.  
 
 
<button id="Button31" label="добавить дату" showImage="true" onAction="вводдаты" imageMso="WhatIfAnalysisMenu" showLabel="true"/>
 
так что ли:  
вместо imageMso="WhatIfAnalysisMenu"   написать FaceID=1820?
 
просто если через вба все залезает во вкладку Надстройка, а я хочу свою вкладку.
 
Дмитрий меня мучает вопрос. Есть ли способ каким-либо образом рисунок из dll, который вызывается через FaseID, переложить на элемент управления (CommandButon).
 
Алекс, встречай привет из Казахстана.
 
Спасибо, попробую применить.
 
А ведь получилось, только очень контрастно. Наверное в меню есть какое-то свойство, которое управляет контрастностью рисунка.
 

Еще одна ссылка в тему - как прицепить к пользовательской команде меню свою картинку: <BR>http://www.excelforum.com/excel-programming/637392-put-a-custom-image-in-a-commandbar-control.html

 
{quote}{login=The_Prist}{date=21.02.2010 10:52}{thema=}{post}... надстройка просто показывает иконки значков через их ID. Вот Вам файл, делающий аналогичное.{/post}{/quote}  
Спасибо. Пришлось чуть подправить чтобы не вылетало в дебаггер - ограничить количество значков 10039:  
       If i >= 10039 Then Exit Sub  
'вместо If i >= 16209 Then Exit Sub  
Правда, работать с таким огромным меню неудобно.  
Есть идея, как это можно "обудобить", но мне это не по силам...  
Надо попробовать сделать как в той надстройке - формирование листа со всеми значками и их FaceID. Лист можно масштабировать стандартными средствами и выбирать на нем интересующие рисунки.  
А ещё нужен макрос создания меню "Значки", на котором будет кнопочка "Обновить рисунок" и всего одна "лысая" (без рисунка) ничего не делающая кнопка, на которую по нажатию "Обновить рисунок" вставляется выделенный на листе со значками рисунок (там как раз в ячейке около каждого рисунка прописывается его FaceID).    
Или, чтобы не делать кнопку "Обновить рисунок", к каждой из иконок на листе приписать макрос, выполняющий по её FaceID замену значка на "лысой" кнопке.  
 
Тогда будет можно, выбрав для своего макроса понравившийся рисунок, поместить его на кнопку меню "Значки".    
А потом войти в режим настройки меню, скопировать (или просто переместить) эту кнопку в нужное для своего макроса меню и назначить его на эту кнопку.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Володя,  
то, что ты прислал - просто СУПЕР!  
EDC FaceID CommandBar решает практически все проблемы с выбором значка из 10036 доступных!  
Огромное СПАСИБО!
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Для интересующихся - вот ссылка на EDC CommandBar Tools http://erlandsendata.no/?p=2694
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Приятно, что пригодилось... Я очень рад.
 
{quote}{login=VovaK}{date=24.02.2010 11:03}{thema=}{post}Приятно, что пригодилось... Я очень рад.{/post}{/quote}  
 
Добрый день!  
Володя! А нельзя ли сделать так, чтобы этим "ЧУДОМ" могли пользоваться и др. форумчане?  
Например, повесить его в файло обменник, и дать ссылочку.  
СПАСИБО!
 
Так вот же эта ссылка с надстройкой http://erlandsendata.no/?p=2694
 
{quote}{login=VovaK}{date=24.02.2010 12:59}{thema=}{post}Так вот же эта ссылка с надстройкой http://erlandsendata.no/?p=2694{/post}{/quote}  
 
Да нет же, меня интересуют : "...  проблемы с выбором значка из 10036 доступных!"
 
Я тоже, честно говоря, не понимаю в чём вопрос?  
Я же указал, что в приведенном The_Prist примере очень не удобно организован вывод возможных значков.    
Поэтому найти интересный значок там просто невозможно... Ну, скачайте сами post_102220.xls ( http://www.planetaexcel.ru/docs/forum_upload/post_102220.xls ) и убедитесь...  
Зато EDC FaceID CommandBar решает практически все проблемы с выбором значка из 10036 доступных.  
Тоже скачайте и тоже убедитесь: http://erlandsendata.no/?p=2694    
 
Я думаю, что к набору своих инструментов для создания значков, добавлю еще и CommandBarIcons.xls ( http://www.erlandsendata.no/downloads/commandbaricons.zip ). Написанный там макрос позволяет создать меню с кнопками, значки на которые выбираются не из огромного набора доступных, а из файлов BMP 16х16pix.  
Только надо будет чуть доработать чтобы можно было файл выбирать, а не брать "зашитый" в коде программы.  
К стати, подскажите, есть ли какой-нибудь элемент управления, позволяющий выбирать файлы?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Пару лет назад тоже столкнулся с проблемой просмотра значков для кнопок своих панелей инструментов. На Планете даже вопрос задавал, но так ничего и не добился. Тогда сваял вот такой файлик, где значки просматриваются на панели инструментов, что удобнее, чем в меню, как у The_Prist.
Страницы: 1 2 След.
Читают тему
Наверх