Документация HotXLS

Метод SetPatternThemeColor

Задаёт цвет узора (фона) ячейки одному из 12 слотов цветов темы Office с необязательной корректировкой оттенка. Это аналог метода Interior.PatternColor для темы

Синтаксис

procedure SetPatternThemeColor(ThemeIdx: Word; Tint: Double);

Параметры

ThemeIdx — индекс слота темы (отсчёт с 0) (0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..6, 10=hlink, 11=foHlink)
Tint — корректировка осветления/затемнения в стиле спецификации в диапазоне -1.0 .. +1.0 Кодируется в FullColorExt.nTintShade как знаковое целое Q15 в

Примечания

Для каждого вызова эмитируются два проводных пути, чтобы ячейка корректно отображалась как в Excel 2007+, так и в Excel 2003:
Обратное чтение через Interior.PatternColor возвращает разрешённый RGB (тема + оттенок применены), поэтому вызывающие стороны всегда видят конкретный LongWord

Пример

Отображает полосатую предупреждающую полосу с использованием слотов темы accent1 / accent2, чтобы цвета соответствовали теме рабочей книги

var
  Stripes: IXLSRange;
begin
  Stripes := Workbook.Sheets[1].Range['B2', 'B10'];
  Stripes.Interior.Pattern := xlPatternGray25;
  Stripes.Interior.SetThemeColor(4, 0.4);          // fill foreground (accent1, lighter)
  Stripes.Interior.SetPatternThemeColor(5, - 0.25);  // pattern color (accent2, darker)

  Workbook.SaveAs('PatternThemeFills.xls', xlExcel97);
end;

См. также