オプションの淡色調整を伴う 12 種類の Office テーマカラースロットのいずれかにセルシェーディング塗りつぶし (前景) 色を設定します
構文
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 の範囲における仕様準拠の明るさ/暗さ調整
備考
セッターは 2 つのパスを経るため、Excel 2007+ と Excel 2003 の両方でセルが正しくレンダリングされます
- XF レコード上の indexed icv(旧方式) — theme と tint はブックの BIFF theme パレットで RGB に解決され、その後もっとも近い 56 色パレットのインデックスが選ばれます。Excel 97-2003 は、ファイルを開いたときにこの近似値を認識します
- XFExt $087D 上の FullColorExt スロット(Excel 2007 以降) — ライターは
xclrType=3(theme)、xclrValue=ThemeIdx、nTintShade を Tint から派生させたリッチカラーの補助レコードを出力します。Excel 2007 以降はこれを使って正確な theme の意図を復元し、ブックの theme パレットが変わるたびにセルへ再ティントを適用します — Microsoft が "Save As" で theme 付き .xlsx を .xls にダウングレードするときに使う後方互換トリックと同じです
SetThemeColor で設定したセルは読み込み時にラウンドトリップします
Excel で ページレイアウト → 配色を使用して設定されたカスタムテーマパレットは BIFF8 Theme レコードを通じて存続します
使用例
ヘッダー行を accent1 で塗りつぶし、警告セルを 50% 明るい赤の 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;
関連項目