Excel。テーマの色の設定値ってこんな風になっているんですね。
<VBA>
セルを塗りつぶすときに、マクロVBAだと、vbRedというように、設定することもできますが、この使い方だと、
標準の色しか使うことができません。
折角テーマの色というのがあるので、それを使うとした場合、
どのようにしたら、マクロVBAで設定することができるのか、
確認していきましょう。
カラーパレットをみると、テーマの色を基本として、
その白や黒を加えたグラデーションのように配置されています。
わかりやすいように、カラーパレットに番号を振って確認してみましょう。
まず、1行目の1~10までが基準になっています。
マクロVBAでのコードは次のようになっています。
背景1(1)→xlThemeColorDark1
テキスト1(2)→xlThemeColorLight1
背景2(3)→xlThemeColorDark2
テキスト2(4)→xlThemeColorLight2
アクセント1(5)→xlThemeColorAccent1
アクセント2(6)→xlThemeColorAccent2
アクセント3(7)→xlThemeColorAccent3
アクセント4(8)→xlThemeColorAccent4
アクセント5(9)→xlThemeColorAccent5
アクセント6(10)→xlThemeColorAccent6
なお、1番は、マウスをのせると、ポップアップされるヒントには、
「白、背景1」と背景1の前に色名がついていますが、
テーマが変わると、その色名は変わってしまいますので、
背景1の部分だけ記載しています。
では実際にM2にアクセント6の塗りつぶしを設定するマクロVBAを作ってみます。
Sub テーマの色()
Range("m2").Interior.ThemeColor = xlThemeColorAccent6
End Sub
実行してみると、
M2にアクセント6が設定することが出来ましたね。
Interior.ThemeColor= xlThemeColorAccent6というプロパティですが、
Interior.がセルを塗りつぶすプロパティで、
ThemeColor= xlThemeColorAccent6は、
「塗りつぶす色は、テーマカラーのアクセント6と」いう意味ですね。
さて、2行目以降11~20はどのように設定されているのでしょうか?
11番は、「背景1 黒+基本色5%」
20番は、「アクセント6 白+基本色80%」
というようになっていますね。
先程の1行目の1~10までの色にプラスされている形です。
では実際にM3に20番は、
「アクセント6 白+基本色80%」の塗りつぶしを設定するマクロVBAを作ってみます。
Sub テーマの色()
Range("m3").Interior.ThemeColor = xlThemeColorAccent6
Range("m3").Interior.TintAndShade = 0.8
End Sub
では実行してみます。
まず、テーマの色を設定して、
そのアクセントの明るさを設定するという流れの構文です。
TintAndShadeプロパティは、-1=黒・1=白というような設定値が用意されています。
TintAndShade = 0.8の0.8は、
白+基本色80%なので、白だから『+(プラス)』そして80%なので、『0.8』。
プラスは省略するので、TintAndShade = 0.8とすることで、
カラーパレットの20番の色を使うことが出来るという仕組みです。
設定値を詳細に表すと次のようになります。
そして、この設定値はここにあるだけではなくて、調整することができます。
例えば、黒+基本色70%というのは、ありませんが作ることが出来るわけですね。
Sub テーマの色()
Range("q3").Interior.ThemeColor = xlThemeColorAccent6
Range("q3").Interior.TintAndShade = -0.7
End Sub
通常のExcelでは出来ないことも
マクロVBAを使うことで表現することも可能になります。