선택적 색조 조정을 사용하여 12개 Office 테마 색상 슬롯 중 하나에 셀 음영 채우기(전경) 색상을 설정합니다. 고정 RGB를 고정하는 대신 Office 테마 색상을 직접 지정하려는 호출자를 위한
Interior.Color의 동반 메서드입니다(Excel이 통합 문서의 테마 팔레트로 셀을 다시 색조 처리할 수 있도록). v2.61.0 이후 사용 가능(차트 백로그 웨이브 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(레거시) — 테마와 틴트는 통합 문서의 BIFF 테마 팔레트를 거쳐 RGB로 해석되고, 그다음 가장 가까운 56색 팔레트 인덱스를 선택합니다. 파일을 열면 Excel 97-2003은 이 근사값을 보게 됩니다
- XFExt $087D의 FullColorExt 슬롯(Excel 2007+) — writer는
xclrType=3(테마), xclrValue=ThemeIdx, nTintShade가 Tint에서 파생된 리치 색상 보조 레코드를 내보냅니다. Excel 2007+는 이를 사용해 정확한 테마 의도를 복원하고, 통합 문서 테마 팔레트가 바뀔 때마다 셀을 다시 틴트합니다 — Microsoft가 "Save As"로 테마 스타일 .xlsx를 .xls로 낮출 때 쓰는 것과 같은 하위 호환 트릭입니다
SetThemeColor를 통해 설정된 셀은 로드 시 왕복 처리됩니다:
Interior.Color는 해결된 RGB(BIFF 테마 팔레트를 통해 테마 + 색조 적용)를 반환하므로 호출자는 항상 구체적인 LongWord 값을 봅니다
Excel에서 페이지 레이아웃 → 색상을 통해 설정된 사용자 지정 테마 팔레트는 BIFF8 테마($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;
참고 항목