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

Метод SetThemeColor (рамка)

Задаёт цвет рамки края одному из 12 слотов цветов темы Office с необязательным оттенком. Аналог метода Border.Color для темы. Доступен для каждого селектора края (верхний, нижний, левый, правый, диагональный, а также составные селекторы xlAround, xlInsideVertical, xlInsideHorizontal, xlInsideAll). Доступен с версии v2.61.0; путь составных селекторов завершён в v2.63.0 (волна D, фаза 6)

Синтаксис

procedure SetThemeColor(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 Кодируется в XFExt FullColorExt как знаковое целое Q15 в nTintShade

Примечания

Та же двойная эмиссия записей, что и для установщиков Interior / Font:
Составные селекторы регистрируют по одному слоту XFExt на физический край в одном проходе цикла по ячейкам с помощью внутреннего вспомогательного метода установки слота. xlAround регистрирует {rsTop, rsBottom, rsLeft, rsRight}; xlInsideVertical регистрирует {rsLeft, rsRight}; xlInsideHorizontal регистрирует {rsTop, rsBottom}; xlInsideAll регистрирует все четыре. Обратное чтение через Border.Color возвращает разрешённый RGB
BIFF8 FullColorExt хранит только один цвет диагонали, поэтому xlDiagonalDown и xlDiagonalUp используют один и тот же слот XFExt (rsDiag)

Пример

Обрамляет полосу отчёта цветом accent4 (цвет темы) и добавляет внутренний разделитель accent5 с 25% более светлым оттенком

var
  Report: IXLSRange;
begin
  Report := Workbook.Sheets[1].Range['A1', 'F20'];
  Report.Borders[xlAround].SetThemeColor(7, 0.0);
  Report.Borders[xlInsideHorizontal].SetThemeColor(8, 0.25);
  Workbook.SaveAs('ThemedBorders.xls', xlExcel97);
end;

См. также