Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2010, 10:36   #1
Simbad
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 62
Сообщение Как изменить фон диапазона?

Приветствую всех участников форума!
Подскажите пожалуйста как задават цвет фона для выбранного диапазона из диалогого окна Application.Dialogs(xlDialogColorPa lette).Show ?
У меня это диалг. окно открывается но после выбор цвет и нажатия кнопка "Ok" выдается такой ошыбка "Метод Show из класса Dialog завершен неверно".
Заранее спасибо тем кто поможет.
Simbad вне форума Ответить с цитированием
Старый 22.02.2010, 11:37   #2
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

выложить пример
Dophin вне форума Ответить с цитированием
Старый 22.02.2010, 12:29   #3
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Может лучше использовать такой диалог?
Код:
Dim h
h = Application.Dialogs(xlDialogPatterns).Show()
Закрасит выделенный диапазон в выбранный цвет.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 22.02.2010, 12:36   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вбил xlDialogColorPalette в Google, и через несколько секунд нашел готовое решение:
Код:
Private Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" _
                                     (pChoosecolor As ChooseColor) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
                                    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Private Type ChooseColor
    lStructSize As Long: hwndOwner As Long: hInstance As Long: rgbResult As Long
    lpCustColors As String: flags As Long: lCustData As Long: lpfnHook As Long: lpTemplateName As String
End Type

Private Function ShowColor() As Long
    Dim ChooseColorStructure As ChooseColor
    Dim Custcolor(16) As Long
    Dim lReturn As Long
    ChooseColorStructure.lStructSize = Len(ChooseColorStructure)
    ChooseColorStructure.hwndOwner = FindWindow("XLMAIN", Application.Caption)
    ChooseColorStructure.hInstance = 0
    ChooseColorStructure.lpCustColors = StrConv(CustomColors, vbUnicode)
    ChooseColorStructure.flags = 0
    If ChooseColor(ChooseColorStructure) <> 0 Then
        ShowColor = ChooseColorStructure.rgbResult
        CustomColors = StrConv(ChooseColorStructure.lpCustColors, vbFromUnicode)
    Else
        ShowColor = -1
    End If
End Function


Sub ПримерИспользования()
    Selection.Interior.Color = ShowColor
End Sub

Вот пример в виде файла.
Выделите диапазон, и нажмите зеленую кнопку.



PS: Где-то на русскоязычных форумах по Excel видел решение с помощью xlDialogColorPalette
(или какого-то аналогичного диалогового окна), но найти не смог.
EducatedFool вне форума Ответить с цитированием
Старый 22.02.2010, 12:40   #5
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
PS: Где-то на русскоязычных форумах по Excel видел решение с помощью xlDialogColorPalette
(или какого-то аналогичного диалогового окна), но найти не смог.
Привет, Игорь. См. выше :-)
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 23.02.2010, 09:50   #6
Simbad
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 62
По умолчанию

Огромное спасибо! Помогло.
Simbad вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить фон, не закрасив картинку. Iamloli Мультимедиа в Delphi 18 21.01.2010 08:24
Как скопировать из диапазона значения без формул??? Алексей11111 Microsoft Office Excel 3 12.11.2009 12:43
Как закрасить фон Sergeyst88 Помощь студентам 6 28.10.2009 19:23
как изменить фон изображения до общего фона. CaSHA HTML и CSS 5 24.06.2009 11:43
как удалить #Н/Д из диапазона?? kievlyanin Microsoft Office Excel 12 21.04.2009 14:53