|
Получить доступ к контролу риббона в Run-Time
|
|||
---|---|---|---|
#18+
Доброго дня! Предыстория: есть в Excel 2010 на панели своя пользовательская вкладка, на ней множество различных групп и контролов. Вот часть структуры: XML-файл риббона. Часть некая Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
При загрузке книги объявляется глобальная переменная риббона, с которой и работаю. Но!!! В процессе работы, если возникает какая-либо ошибка, то слетают глобальные переменные. При нажатии кнопки "Загрузить" данные я могу загрузить, но хотелось бы обновить и риббон - в частности, проставить всем фильтрам значения по умолчанию. И как-то не могу понять. То ли туплю, то ли ... Нужен пинок в нужную сторону или информация, подкупающая своей новизной. Пробовала использовать хитрый код отсюда . Excel вылетает на строке: Код: vbnet 1.
И вылетает знатно, даже книгу потом невозможно ни открыть, ни восстановить. Пробовала CommandBars. В итоге у меня есть Application.CommandBars("Ribbon").Controls, в котором всего один контрол с именем Ribbon. В нем других контролов нет :( Как достучаться до риббона в рантайме? Или как его перезагрузить и восстановить ссылку в глобальной переменной на уже загруженный риббон? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 16:30 |
|
Получить доступ к контролу риббона в Run-Time
|
|||
---|---|---|---|
#18+
Да, в качестве дополнения - есть еще вот тут очень много кода, но на него меня уже не хватило... Боюсь потерять еще пару дней и ничего не добиться. Если кто-то уже разбирался, подскажите, будьте добры :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 16:48 |
|
Получить доступ к контролу риббона в Run-Time
|
|||
---|---|---|---|
#18+
Из последних мыслей: для загрузки данных я нажимаю собственно кнопку Загрузить на риббоне. Т.е. я могу в то же процедуре после отработки загрузки обновить обновить и фильтры. Тогда остается вопрос - как из процедуры обработки, для которой входящим параметром является риббоновый контрол-кнопка, поменять значение другого контрола? Вот, собственно, процедура по кнопке риббона Загрузить . Код: vbnet 1. 2. 3.
Из всего того, что я написала выше, хотелось бы сделать нечто такое: Код: vbnet 1. 2. 3. 4. 5. 6.
Пока у меня тут монолог =D Надеюсь, кто-нибудь присоединится в ближайшем будущем или мне придет светлая мысль в голову, и проблема-таки решится. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2016, 01:27 |
|
Получить доступ к контролу риббона в Run-Time
|
|||
---|---|---|---|
#18+
Ну что сказать... приятно поговорить с хорошим человеком :P Задачу я взяла измором. А все невнимательность! Итак, чтобы вернуть переменной ribbon-a указатель на сам риббон, можно-таки воспользоваться кодом отсюда Для удобства и красоты добавила отдельный модуль, содержащий все необходимые процедуры (см. ссылку). процедуры для возврата связи с риббоном из ссылки Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Процедура инициализации риббона выглядит так: Код: vbnet 1. 2. 3. 4. 5.
Ссылка на эту процедуру в XML по событию onLoad: Код: xml 1.
В код процедуры-обработчика кнопки Загрузить написала так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Всем спасибо! Особенно автору этого кода, который мне и помог собственно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2016, 17:13 |
|
|
start [/forum/topic.php?fid=60&fpage=18&tid=2155390]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 306ms |
total: | 424ms |
0 / 0 |