Страницы: 1
RSS
Добавление определенного цвета в секцию "Последние цвета" в палитру цветов средствами VBA
 
Добрый день уважаемые форумчане, такой вопрос, а можно ли средствами VBA, добавить в стандартную палитру в блок "Последние цвета", свой собственный цвет ?

В интернете нашел статью https://www.thespreadsheetguru.com/the-code-vault/vba-add-recent-colors-to-palette
но это как мне кажется не совсем то что нужно

Может кто-то задавался уже подобным вопросом ?

Данное действо необходимо для того, чтобы пользователь через надстройку "добавлял" данные цвета и потом использовал именно их для заливки ячеек. После чего при помощи функции происходил подсчет суммы по цвету ячеек
 
файлы
Изменено: pinguindell - 22.08.2019 15:53:39
 
Цитата
pinguindell написал:
Может кто-то задавался уже подобным вопросом ?
Вашими молитвами, задаюсь этим вопросом уже несколько часов. Решения не нашёл, нашёл несколько тупиковых для меня направлений:
1. Мне тоже не нравится предложенный метод. Нашёл, как вызвать окно выбора цвета не хоткеями, а напрямую, но не знаю, что с ним потом делать, так как оно модальное и макрос ждёт его закрытия.
Код
Application.Dialogs(xlDialogEditColor).Show 40, R, G, B
Число 40, это код цвета, который выбирается по умолчанию при открытии диалогового окна (1-56), не используется, если указаны значения R, G, B.
2. Вот эти цвета (1-56) можно тоже все поменять со стандартных, но они на менюшки никак не влияют, похоже(((
Код
ThisWorkbook.Colors(i) = 66666
3. Условно "рабочий" вариант - можно поменять не недавние цвета, а цвета в теме:
Код
ThisWorkbook.Theme.ThemeColorScheme.Colors(1-12).rgb = нужный цвет
4. Нашёл ID пунктов меню с цветом, но не нашёл, как изменить их свойства. Наверное, вообще нельзя((
Код
CommandBars.FindControls(ID:=1691)(1)     'Цвет &заливки
CommandBars.FindControls(ID:=1457)(1)    'Последние использованные цвета

Мало ли. Может что-нить натолкнёт на нужную мысль. Просто SendKeys это как-то не очень ИМХО.
Изменено: Wiss - 22.08.2019 18:41:47
Я не волшебник, я только учусь.
 
Wiss,спасибо ! Обязательно ознакомлюсь и проверю на рабочем примере . Нашёл альтернативное , подходящее для меня решение , в поредение выложу рабочие файлы .

Решение на базе решения ikki, в теме
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=37551
 
Цитата
pinguindell написал:
Решение на базе решения ikki, в теме
Да, забавно. Теперь я знаю, как отслеживать изменения цвета (которое отследить нельзя:))
Осталось только дать возможность пользователям выбирать те самые цвета, которые "можно". И вот тут-то можно использовать мой пункт 3 (изменение цветов в текущей теме книги) + пункт 2 (частично используется ikki) нет - проверил на практике - colorIndex работает неожиданно (всегда что-то выдаёт, так что сделал всё сразу на color).

В приложении решение, вдохновлённое ikki, с возможностью задать в книге до 10 цветов для раскраски и заливкой всего кривого vbMagneta. Диапазон проверки можно задать параметром.
Изменено: Wiss - 22.08.2019 22:02:08
Я не волшебник, я только учусь.
Страницы: 1
Наверх