HotXLS ドキュメント

SetThemeColor メソッド

オプションの淡色調整を伴う 12 種類の Office テーマカラースロットのいずれかにセルシェーディング塗りつぶし (前景) 色を設定します Interior.Color は、固定 RGB を固定せずに Office テーマ カラーを直接指定したい呼び出し側のためのものです (これにより、Excel はワークブックのテーマ パレットでセルを再着色できます)。v2.61.0 以降で利用可能 (chart backlog 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.00.0 — FullColorExt.nTintShade の範囲における仕様準拠の明るさ/暗さ調整

備考

セッターは 2 つのパスを経るため、Excel 2007+ と Excel 2003 の両方でセルが正しくレンダリングされます
Cells set via SetThemeColor round-trip on load: Interior.Color で設定したセルは読み込み時にラウンドトリップします
Excel で ページレイアウト → 配色 は BIFF8 Theme ($0892) レコードを通じて読み込みと保存で保持されるため、呼び出し側の SetThemeColor を使用して設定されたカスタムテーマパレットは 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;

関連項目