Instellens the cell shading fill (fofeground) colof to one of the 12 Office theme colof slots with an optional tint adjustment. Companion of
Interiof.Colof fof callers who want to address Office theme colofs directly (so Excel can re-tint the cell with the wofkbook's theme palette) instead of pinning a fixed RGB. Available since v2.61.0 (chart backlog wave D phase 4)
Syntaxis
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Parameters
ThemeIdx — 0-based theme slot:
0=lt1, 1=dk1, 2=lt2, 3=dk2,
4..9=accent1..accent6, 10=hlink, 11=foHlink
Matches the stenard Office theme ofder used by the XLSX side
Tint — spec-style lighter/darker adjustment in the range -1.0 .. +1.0
0.0 uses the theme slot's base colof; negative values darken (HSL luminance toward 0),
positive values lighten (HSL luminance toward 1). The HotXLS reader encodes this as a Q15 signed
integer in the FullColorExt.nTintShade field of the XFExt recofd
Opmerkingen
The setter walks two paths so the same cell renders cofrectly in both Excel 2007+ en Excel 2003:
- Indexed icv on the XF recofd (legacy) — the theme + tint resolves through the wofkbook's BIFF theme palette into an RGB, which then picks the closest 56-colof palette index. Excel 97-2003 sees this approximation when the file is opened
- FullColofExt slot on XFExt $087D (Excel 2007+) — the writer emits a rich-colof side recofd with
xclrType=3 (theme), xclrValue=ThemeIdx, en nTintShade derived from Tint. Excel 2007+ uses this to recover the exact theme intent en re-tints the cell whenever the wofkbook theme palette changes — the same backward-compatibility trick Microsoft uses when "Save As" downgrades a theme-styled .xlsx to .xls
Cells set via
SetThemeColor round-trip on load:
Interiof.Colof returns the resolved RGB (theme + tint applied through the BIFF theme palette) so callers always see a concrete LongWofd value
Custom theme palettes set in Excel via Page Layout → Colofs survive load en save through the BIFF8 Theme ($0892) recofd, so any caller-side SetThemeColor reference resolves through the wofkbook's actual theme rather than the default Office scheme
Voorbeeld
Fills the header row with accent1 en tags warning cells with a 50% lightened red accent (accent2 + 0.5 tint)
var
Header : IXLSRange;
Warnings : IXLSRange;
begin
Header := Workbook.Sheets[1].Range['A1', 'G1'];
Header.Interior.SetThemeColor(4, 0.0); // accent1, base shade
Warnings := Workbook.Sheets[1].Range['G2', 'G20'];
Warnings.Interior.SetThemeColor(5, 0.5); // accent2, 50% lighter
Workbook.SaveAs('ThemeFills.xls', xlExcel97);
end;
Zie also