Названия цветов определяются только с эстетической целью. Хочу показать-поделиться. Может быть, кому-то пригодится вариант решения. Макрос см. на диске Yandex: http://yadi.sk/d/efel4tND3NXFbH (файл с макросом – около 1 Мб – больше разрешённого для загрузки на форум, даже если максимально сжать архиватором)
Для работы с системными цветами (GetSysColor) макрос использует библиотеку %systemroot%\system32\user32.dll
Названия цветов взяты для примера с двух тематических сайтов, поэтому корректность этих названий здесь не обсуждается.
Название выбранного пользователем цвета определяется названием ближайшего цвета, которое записано в соответствующий массив. Для этого используется формула аналитической геометрии для вычисления расстояния между двумя точками (представляющими цвета) в трёхмерной прямоугольной системе координат Декартова пространства. В качестве осей координат выступают составляющие компоненты цвета: красный (red), зелёный (green) и синий (blue). Производится обработка и значений системных цветов Windows.
Я не стал делать массив названий цветов доступным для пользователя (например, в виде txt-файла), т.к. это значительно усложнило бы код макроса, ведь надо было бы не только прочитать данные из txt-файла, но и проверить их корректность. Для моего проекта в этом нет необходимости.
В программировании я – любитель-самоучка, поэтому понимаю, что мой алгоритм может требовать оптимизации. Представленный проект разрабатывался в Excel 2003 на Windows 7x32 и немного тестировался под более новыми версиями Excel и Windows.
Названия цветов определяются только с эстетической целью. Хочу показать-поделиться. Может быть, кому-то пригодится вариант решения. Макрос см. на диске Yandex: http://yadi.sk/d/efel4tND3NXFbH (файл с макросом – около 1 Мб – больше разрешённого для загрузки на форум, даже если максимально сжать архиватором)
Для работы с системными цветами (GetSysColor) макрос использует библиотеку %systemroot%\system32\user32.dll
Названия цветов взяты для примера с двух тематических сайтов, поэтому корректность этих названий здесь не обсуждается.
Название выбранного пользователем цвета определяется названием ближайшего цвета, которое записано в соответствующий массив. Для этого используется формула аналитической геометрии для вычисления расстояния между двумя точками (представляющими цвета) в трёхмерной прямоугольной системе координат Декартова пространства. В качестве осей координат выступают составляющие компоненты цвета: красный (red), зелёный (green) и синий (blue). Производится обработка и значений системных цветов Windows.
Я не стал делать массив названий цветов доступным для пользователя (например, в виде txt-файла), т.к. это значительно усложнило бы код макроса, ведь надо было бы не только прочитать данные из txt-файла, но и проверить их корректность. Для моего проекта в этом нет необходимости.
В программировании я – любитель-самоучка, поэтому понимаю, что мой алгоритм может требовать оптимизации. Представленный проект разрабатывался в Excel 2003 на Windows 7x32 и немного тестировался под более новыми версиями Excel и Windows.