Excelで使う色は結局いつも同じ問題
Excelで背景色を使う場合、塗りつぶしの色のカラーパレットの中から選ぶことが多いですが、その中でも使えそうな色は限られているため、どうしても似たような配色の資料ばかりになりがちです。
文字色は大抵「黒」ですので、それに合わせてカラーパレットから文字が見えるぐらいの薄い色を選択することになるため、実質背景色として使える色は5、6色程度になります。当然、毎回似たような配色になります。
そのような「似たような資料」をちょっと変える方法として、普段は使わない濃い色を背景色に設定し、あとから薄くして普段とは異なる配色にするマクロを紹介します。
選択セル範囲の背景色を少しずつ薄くするコード
以下は、選択セル範囲の背景色を実行する度に薄くするマクロです。関数が2つありますが実行するのは1つ目のChangePastelColor関数です。
2つ目のAddWhite関数はChangePastelColor関数から呼び出される関数で、引数の色を少し白くする関数です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
Sub ChangePastelColor() Dim r As Range '// セル Dim iRed As Integer '// 赤 Dim iGreen As Integer '// 緑 Dim iBlue As Integer '// 青 Dim iColor As Long '// セル背景色 '// 選択セル範囲をループ For Each r In Selection '// セル背景色を取得 iColor = r.Interior.Color '// RGB関数用にセル背景色から赤、緑、青の値を取得 iRed = iColor Mod 256 iGreen = Int(iColor / 256) Mod 256 iBlue = Int(iColor / 256 / 256) '// 各色を薄くする Call AddWhite(iRed) Call AddWhite(iGreen) Call AddWhite(iBlue) '// セル背景色に薄くした背景色を再設定 r.Interior.Color = RGB(iRed, iGreen, iBlue) Next End Sub Sub AddWhite(a_iColor As Integer) a_iColor = a_iColor + 10 '// 色が終端を超えた場合 If a_iColor > 256 Then a_iColor = 256 End If End Sub |
実行結果
以下は標準テーマの塗りつぶしの色の中で、一番濃い色を上のマクロを使って2行ごとに少しずつ薄くしています。濃い部分は白い文字にして、薄い部分は黒い文字にしています。
一番下の行の背景色はカラーパレットの一番薄い色を参考で載せてます。結構薄いですね。