При работе с объектной моделью экселя хочется изменить цвет встроеной палитры.
workbook.set_Colors(1,\*???*\); функция принимает "object rhs"
Как мне его получить, даже пусть без конверций всяких.. просто выбирая цвет в паинте...?
Иль мож какой-нить редактор просто преподносит и такое представление цвета...
Ну как форум по dotnet, всетаки приятней будет узнать функцию перевода...
Спасибо..!
Наверно я криво объяснил...
хотя сейчас ненамного лучше кажется будет.., но может картина несколько прояснится..
Есть красный цвет (255,0,0) если я подставляю 255 в функцию, я и получаю (вижу) красный цвет..
Если я смещаюсь по шкале красного цвета до нуля, не трогая зеленый и синий, то также подставляя в функцию вижу правильную картину (изменение красного цвета) А вот как мне получить например из (0,255,0) или (10,20,30) значение при подстановке которого я бы лицезрел соответствующий цвет. Спасибо.
Здравствуйте, <Аноним>, Вы писали:
А>При работе с объектной моделью экселя хочется изменить цвет встроеной палитры.
А>workbook.set_Colors(1,\*???*\); функция принимает "object rhs"
Странно это очень. В хелпе екселя написано, что WorkBook.Colors принимает цвет в виде RGB:
This example sets color five in the color palette for the active workbook.
ActiveWorkbook.Colors(5) = RGB(255, 0, 0)
А вот фрагмент из хелпа по VB Scripting Edition:
Returns a whole number representing an RGB color value.
RGB(red, green, blue)
Arguments
red
Required. Number in the range 0-255 representing the red component of the color.
green
Required. Number in the range 0-255 representing the green component of the color.
blue
Required. Number in the range 0-255 representing the blue component of the color.
Remarks
Application methods and properties that accept a color specification expect that specification to be a number representing an RGB color value. An RGB color value specifies the relative intensity of red, green, and blue to cause a specific color to be displayed.
The low-order byte contains the value for red, the middle byte contains the value for green, and the high-order byte contains the value for blue.
For applications that require the byte order to be reversed, the following function will provide the same information with the bytes reversed:
Function RevRGB(red, green, blue)
RevRGB= CLng(blue + (green * 256) + (red * 65536))
End Function
The value for any argument to RGB that exceeds 255 is assumed to be 255.
Так что попробуй отдавать вариант, в котором лежит long, полученный как
red + green*256 + blue*65536

1.1.4 stable rev. 510
for any argument to RGB that exceeds 255 is assumed to be 255.
S>Так что попробуй отдавать вариант, в котором лежит long, полученный как S>red + green*256 + blue*65536
Премного благодарен. Получилось!