オプションの淡色調整を伴う 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 の両方でセルが正しくレンダリングされます
- 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 にダウングレードするときに使う後方互換トリックと同じです
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;
関連項目