Menetapkan warna fill (foreground) sel ke salah satu dari 12 slot warna tema Office dengan tint opsional. Pendamping dari
Interior.Color untuk pemanggil yang ingin mengalamatkan warna tema Office
Sintaks
procedure SetThemeColor(ThemeIdx: Word; Tint: Double);
Parameter
ThemeIdx — slot tema berbasis-0: 0=lt1, 1=dk1, 2=lt2, 3=dk2, 4..9=accent1..accent6, 10=hlink, 11=foHlink
Tint — penyesuaian lebih terang/gelap bergaya spec dalam rentang -1.0 .. +1.0. 0.0 menggunakan warna dasar slot tema; nilai negatif mempergelap (luminansi HSL menuju 0), nilai positif mencerahkan
Keterangan
Setter berjalan dua jalur sehingga sel yang sama dirender dengan benar di Excel 2007+ maupun Excel 2003:
- Indexed icv pada record XF (legacy) — tema + tint diselesaikan melalui palet tema BIFF workbook menjadi RGB, lalu memilih indeks palet 56 warna terdekat. Excel 97-2003 melihat pendekatan ini saat file dibuka
- Slot FullColorExt pada XFExt $087D (Excel 2007+) — penulis mengeluarkan record samping warna kaya dengan
xclrType=3 (tema), xclrValue=ThemeIdx, dan nTintShade yang diturunkan dari Tint. Excel 2007+ memakainya untuk memulihkan maksud tema yang tepat dan menerapkan ulang tint pada sel setiap kali palet tema workbook berubah — trik kompatibilitas mundur yang sama seperti yang dipakai Microsoft saat "Save As" menurunkan .xlsx bertema menjadi .xls
Sel yang ditetapkan melalui
SetThemeColor round-trip saat dimuat:
Interior.Color mengembalikan RGB yang diselesaikan (tema + tint diterapkan melalui palet tema BIFF) sehingga pemanggil selalu melihat LongWord konkret
Palet tema kustom yang ditetapkan di Excel melalui Tata Letak Halaman → Warna bertahan saat dimuat dan disimpan melalui rekaman BIFF8 Theme ($0892), sehingga referensi SetThemeColor sisi-pemanggil diselesaikan melalui tema aktual workbook
Contoh
Mengisi baris header dengan accent1 dan menandai sel peringatan dengan aksen merah yang diringankan 50% (accent2 + tint 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;
Lihat juga