Нужно разложить код цвета на составляющие Red, Green, Blue (функция, обратная RGB) - VBA

Узнай цену своей работы

Формулировка задачи:

Я знаю код цвета в виде переменной типа Long (например, как свойство range("a1").interior.color). Цвет в VBA может задаваться через функцию трёх аргументов RGB(red, green, blue), которая возвращает код цвета в формате long. В ней red, green, blue - составляющие цвета, изменяющиеся от 0 до 255. Мне же нужна функция, обратная RGB. Т.е. зная код цвета, хочу получить значения red, green, blue.

Решение задачи: «Нужно разложить код цвета на составляющие Red, Green, Blue (функция, обратная RGB)»

textual
Листинг программы
Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
 
Type t_ARGB
r As Byte
g As Byte
b As Byte
a As Byte
End Type
 
Function ColorToARGB(c As Long) As t_ARGB
CopyMem ColorToARGB.r, c, 4
End Function
 
Sub test()
Dim c As t_ARGB
c = ColorToARGB(RGB(Red:=1, Green:=2, Blue:=3))
Debug.Print c.r; c.g; c.b
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы