將儲存格網底填滿(前景)色彩設定為 12 個 Office 佈景主題色彩插槽之一,並帶有選用色調調整。
Interior.Color 的配套方法,供需要直接定址 Office 佈景主題色彩的呼叫端使用(讓 Excel 可以使用活頁簿佈景主題調色盤重新套用儲存格色調),而非固定 RGB。自 v2.61.0(圖表待辦清單 wave D 第 4 階段)起可用
語法
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
參數
ThemeIdx — 以 0 為基底的佈景主題插槽:
0=lt1、1=dk1、2=lt2、3=dk2、
4..9=accent1..accent6、10=hlink、11=foHlink
與 XLSX 端使用的標準 Office 佈景主題順序對應
Tint — 規格樣式的明暗調整,範圍 -1.0 .. +1.0
0.0 使用佈景主題插槽的基本色彩;負值變暗(HSL 亮度趨向 0),正值變淡(HSL 亮度趨向 1)。HotXLS 讀取器將此編碼為 XFExt 記錄中 FullColorExt.nTintShade 欄位的 Q15 帶正負號整數
備註
設定器走兩條路徑,使相同儲存格在 Excel 2007+ 和 Excel 2003 中均能正確呈現:
- XF 記錄上的索引 icv(傳統) — theme 加 tint 會透過活頁簿的 BIFF 主題調色盤先解析成 RGB,再選出最接近的 56 色調色盤索引。Excel 97-2003 在開啟檔案時會看到這個近似值
- XFExt $087D 上的 FullColorExt 欄位(Excel 2007+) — 寫入器會輸出豐富色彩側記錄,帶有
xclrType=3(theme)、xclrValue=ThemeIdx 與由 Tint 推得的 nTintShade。Excel 2007+ 會用它還原精確的主題意圖,並在活頁簿主題調色盤改變時重新套用顏色 — 這和 Microsoft 在 "Save As" 將套用主題樣式的 .xlsx 降級為 .xls 時使用的向後相容技巧相同
透過
SetThemeColor 設定的儲存格在載入時往返:
Interior.Color 傳回已解析的 RGB(透過 BIFF 佈景主題調色盤套用佈景主題 + 色調),因此呼叫端始終看到具體的 LongWord 值
透過 Excel 中的頁面配置 → 色彩設定的自訂佈景主題調色盤透過 BIFF8 Theme ($0892) 記錄存活於載入和儲存,因此任何呼叫端的 SetThemeColor 參照都透過活頁簿的實際佈景主題(而非預設 Office 配色)解析
範例
以 accent1 填滿標題列,並以 50% 淡化的紅色強調色(accent2 + 0.5 色調)標記警告儲存格
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;
另請參閱