Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Interior.Color и системные цвета / 10 сообщений из 10, страница 1 из 1
24.01.2007, 17:48:33
    #34279862
lustig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
Доброго времени суток!
Подскажите как правильно использовать системные цвета (если это возможно) в VBA для объекта Interior.

Пишу:
Код: plaintext
1.
2.
3.
    With Selection.Interior
        .Color = - 2147483643 
    End With

в примере цвет окна, а получаю черный, пробывал и другие цвета, цвет подсказки, например, а получаю все-равно черный.
Как быть? Спасибо.
...
Рейтинг: 0 / 0
24.01.2007, 17:53:57
    #34279880
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
...
Рейтинг: 0 / 0
24.01.2007, 18:21:48
    #34279981
lustig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
2vbapro:
Прочитал по ссылке. Но не понял как это относится к моей теме. С произвольными RGB цветами у меня проблем нет. Мне нужен системный цвет. Чтобы цвет заливки был цветом окна в винде (не конкретным белым, серым и т.д., а тем, что указан в системе) или цветом виндового хинта, тем, который указан в системе.

Вот из справки к аксу про эти цвета:
Код: plaintext
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.
42.
43.
Настройка системных цветов Microsoft Windows в значениях свойств

Свойства Цвет фона (BackColor), Цвет границы (BorderColor) и Цвет текста (ForeColor) позволяют указать использование в Microsoft Access цветовой гаммы, соответствующей используемой в других приложениях Windows. Это особенно удобно при разработке приложения, с которым будет работать большое количество пользователей. Указание системных цветов Windows позволяет использовать на разных компьютерах различные цветовые гаммы, выбираемые каждым пользователем на панели управления Windows.

 1 	Откройте форму в режиме конструктора.
 2 	Для раздела или элемента управления откройте окно свойств.
 3 	В окне свойств укажите свойства Цвет фона (BackColor), Цвет границы (BorderColor) или Цвет текста (ForeColor).
 4 	Введите в ячейку свойства одно из чисел, приведенных в следующей таблице. Например, чтобы цвет фона формы совпадал с системным цветом фона Windows, задайте для свойства Цвет фона (BackColor) значение - 2147483643 , соответствующее значению элемента «Окно».

Элемент экрана	
Значение
  
Полоса прокрутки	- 2147483648 
Рабочий стол	- 2147483647 
Заголовок активного окна	- 2147483646 
Заголовок неактивного окна	- 2147483645 
Строка меню	- 2147483644 
Окно	- 2147483643 
Рамка окна	- 2147483642 
Текст меню	- 2147483641 
Текст окна	- 2147483640 
Текст заголовка	- 2147483639 
Граница активного окна	- 2147483638 
Граница неактивного окна	- 2147483637 
Фон приложения	- 2147483636 
Выделение	- 2147483635 
Выделенный текст	- 2147483634 
Объемная поверхность	- 2147483633 
Объемная тень	- 2147483632 
Серый цвет текста (недоступный элемент)	- 2147483631 
Текст кнопки	- 2147483630 
Текст заголовка неактивного окна	- 2147483629 
Объемное выделение	- 2147483628 
Объемная темная тень	- 2147483627 
Объемная светлая тень	- 2147483626 
Текст всплывающей подсказки	- 2147483625 
Фон всплывающей подсказки	- 2147483624 
Примечания   

·	Системные цвета Windows могут применяться только к перечисленным свойствам экранных элементов, их нельзя присваивать объектам. Например, свойство поля Цвет фона (BackColor) позволяет задать для поля цвет фона, совпадающий с цветом полосы прокрутки, рабочего стола или любого другого элемента экрана Windows.
·	Значения цветов экранных элементов Windows всегда одни и те же, независимо от конкретных цветов, задаваемых пользователем.
·	Кроме того, значения системынх цветов Windows могут быть заданы для свойств Цвет фона (BackColor), Цвет границы (BorderColor) и Цвет текста (ForeColor) в программе Visual Basic для приложений.

...
Рейтинг: 0 / 0
24.01.2007, 18:46:18
    #34280056
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
Форма где? В Acc или в Excel-е ?
...
Рейтинг: 0 / 0
24.01.2007, 18:52:56
    #34280071
lustig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
Макрос в excel.
...
Рейтинг: 0 / 0
24.01.2007, 19:03:37
    #34280100
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
Ну, дак это и есть цвета Windows. Они и настраиваются из Windows.
Если нужно закрасить ячейки, запусти запись макроса и посмотри результат.
Для формы есть окно свойств. Установи и посмотри в отладчике ,
что получилось.
...
Рейтинг: 0 / 0
24.01.2007, 19:13:30
    #34280120
lustig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
Ffffffffffffffff Если нужно закрасить ячейки, запусти запись макроса и посмотри результат.
Нужно не просто закрасить ячейки, а системным цветом винды. Как красить ячейку я написал еще в первом посте, но если указывать константы системных цветов, то получается черный. Мне нужно не для формы, а для ячейки листа excel.
...
Рейтинг: 0 / 0
24.01.2007, 19:22:42
    #34280145
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
Код: plaintext
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.
Option Explicit

Public Declare Function GetSysColor Lib "user32" (ByVal color_index As Integer) As Long
Const COLOR_SCROLLBAR =  0 
Const COLOR_BACKGROUND =  1 
Const COLOR_ACTIVECAPTION =  2 
Const COLOR_INACTIVECAPTION =  3 
Const COLOR_MENU =  4 
Const COLOR_WINDOW =  5 
Const COLOR_WINDOWFRAME =  6 
Const COLOR_MENUTEXT =  7 
Const COLOR_WINDOWTEXT =  8 
Const COLOR_CAPTIONTEXT =  9 
Const COLOR_ACTIVEBORDER =  10 
Const COLOR_INACTIVEBORDER =  11 
Const COLOR_APPWORKSPACE =  12 
Const COLOR_HIGHLIGHT =  13 
Const COLOR_HIGHLIGHTTEXT =  14 
Const COLOR_BTNFACE =  15 
Const COLOR_BTNSHADOW =  16 
Const COLOR_GRAYTEXT =  17 
Const COLOR_BTNTEXT =  18 
Const COLOR_INACTIVECAPTIONTEXT =  19 
Const COLOR_BTNHIGHLIGHT =  20 

Const COLOR_3DDKSHADOW =  21 
Const COLOR_3DLIGHT =  22 
Const COLOR_INFOTEXT =  23 
Const COLOR_INFOBK =  24 

Const COLOR_HOTLIGHT =  26 
Const COLOR_GRADIENTACTIVECAPTION =  27 
Const COLOR_GRADIENTINACTIVECAPTION =  28 




Sub b()
    ActiveSheet.Range("A1").Interior.Color = GetSysColor(COLOR_ACTIVECAPTION)
    ActiveSheet.Range("A2").Interior.Color = GetSysColor(COLOR_INACTIVECAPTION)
End Sub
...
Рейтинг: 0 / 0
25.01.2007, 10:35:34
    #34280974
lustig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
2White Owl:
Спасибо за предложенное решение. Многие из цветов отображаются корректно, но COLOR_WINDOW остался черный (должен быть оттенок серого), почему - загадка.
Решение не в полной мере решает проблему, даже если все цвета будут нормально отображаться. Тут, как я понял, в текущий момент времени определяется какой RGB цвет соответствует указанному системному и красится этим RGB цветом (например COLOR_INFOBK - желтый, ячейка стала желтая). Но если открыть этот файл на компе, где COLOR_INFOBK - фиолетовый, то ячейка останется желтой. Т.е. для excel ячейка все-равно не будет окрашена в системный цвет в полном смысле этого слова.
...
Рейтинг: 0 / 0
25.01.2007, 18:27:11
    #34283164
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interior.Color и системные цвета
lustig2White Owl:
Спасибо за предложенное решение. Многие из цветов отображаются корректно, но COLOR_WINDOW остался черный (должен быть оттенок серого), почему - загадка.Потому что на машине на которой ты запустил скрипт стандартный цвет окна - черный. И он не должен быть оттенком серого кстати :) Со времен Win95 стандартный цвет окна белый.

lustigРешение не в полной мере решает проблему, даже если все цвета будут нормально отображаться. Тут, как я понял, в текущий момент времени определяется какой RGB цвет соответствует указанному системному и красится этим RGB цветомДа, верно. Это макрос. Он работает "здесь и сейчас". Если хочешь перекрашивать ячейки автоматически при переносе книги на другие компьютеры, помести этот макрос в workbook_open и перекрашивай ячейки при каждом открытии книги.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Interior.Color и системные цвета / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]