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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2009, 12:58   #1
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию Управление Ecxel при помощи Delphi

Добрый день!

Я пишу программу которая будет строить отчет в Excel. Встал в тупик во с чем.

На VBA изменить цвет ячейки и цвет шрифта можно так:
Код:
    Range("A1:E6").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent1
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
При использовании конструкций ".Interior.ThemeColor = xlThemeColorAccent1" и " .Font.ThemeColor = xlThemeColorDark1" Delphi выдает ошибку.

Вопрос: "Можно ли в Delphi посредством стандартной цветовой схемы RGB задавать цвет ячейкам и шрифту?"
nikolai_P вне форума Ответить с цитированием
Старый 10.03.2009, 13:43   #2
cherry25
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 110
По умолчанию

если я правильно вас поняла, то:

var
colum:variant;

begin
Colum:=XLApp.Workbooks[1].WorkSheets['Имя_листа'].Columns;
Colum.Rows[1].Font.Color:=clRed;
end;

Этот код поменяет цвет текста на красный
cherry25 вне форума Ответить с цитированием
Старый 10.03.2009, 15:55   #3
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию

Попробую переформулировать вопрос:

"Как получить доступ к палитре цветов Excel и сделать возможность ее выбора в Delphi?"
nikolai_P вне форума Ответить с цитированием
Старый 10.03.2009, 16:07   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

http://www.programmersforum.ru/showp...5&postcount=15
В этой книге есть все по твоей теме ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 10.03.2009, 18:10   #5
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию

Уважаемый, Kotofff!

К моему большому сожалению у меня ограниченный доступ к интернету. По этой причине я не могу скачать эту книгу.
Поиски в яндексе тоже не дали результатов по интересуемой тематике. Так что буду рад любой полезной ссылке или коду!
nikolai_P вне форума Ответить с цитированием
Старый 11.03.2009, 16:00   #6
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию Забавный макрос)

Записываем макрос:
1. Цвет заливки
2. Другие цвета
3. Выбираем спектр
4. Ставим нужный RGB

У меня получилось следующее
Код:
   With Selection.Interior
        ...
        .Color = 16777215 //белый цвет (255, 255, 255)
        ...
    End With

    Range("B1").Select
    With Selection.Interior
        ...
        .Color = 0 //черный цвет (0, 0, 0)
        ...
    End With

   Range("С1").Select
    With Selection.Interior
         ...
       .Color = 10062592 //цвет морской волны (0, 139, 153)
        ...
    End With
Осталось теперь только определить функцию по которой Excel RGB переводит в простое число.

У кого какие идеи?
nikolai_P вне форума Ответить с цитированием
Старый 11.03.2009, 16:22   #7
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Кусок одного форума :
Цитата:
WordFunc.pas - http://kinsmarino.narod.ru/soft/WordFunc.pas
ExcelFunc.pas - http://kinsmarino.narod.ru/soft/excelFunc.pas

Для заполнения шаблонов Word и Excel вполне достаточно.
Проверено и отработано в Delphi7+Office 2000.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 11.03.2009, 20:10   #8
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Вместо цифр можно сразу писать цвет RGB
Пример макроса
Sub Макрос1()
'
' Макрос1 Макрос
'

'
Range("E2").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = RGB(0, 255, 0)
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub

Кстати, не уверен, но вроде для того чтобы использовать конструкции ".Interior.ThemeColor = xlThemeColorAccent1" и " .Font.ThemeColor = xlThemeColorDark1" нужно в uses прописать ComObj, WordXp
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 12.03.2009, 08:55   #9
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию А вот и ответ...

А вот и ответ...
Заливаем ячейку цветом через RGB.

Код:
WSheet.Cells[1,1].Interior.Color := RGB(0,139,153);
nikolai_P вне форума Ответить с цитированием
Старый 12.03.2009, 09:00   #10
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию

Всем спасибо за помощь!
Что-то с форумом не сразу увидел Ваши сообщения)
nikolai_P вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отладка при помощи gdb kosh1984 Общие вопросы C/C++ 0 08.02.2009 14:36
Из Access записать данные в файл Ecxel roland_12 Microsoft Office Access 1 09.09.2008 05:51
Печать водяных знаков на документах при помощи Delphi Pitonio Помощь студентам 6 12.08.2008 10:51
Изменить цвет при помощи макроса А. Долматов Microsoft Office Excel 5 26.09.2007 21:02