日本語入力ソフトとVBAの覚え書き

・各種日本語入力ソフトの辞書解説 ・ちょっと楽になるWord/Excel VBA集 ・ボーダーブレイク用語辞書

Excelの色の設定について ~RGB指定, ColorIndex, SchemeColor~


f:id:dz_dzone:20170814233145j:plain

Excel VBAでの色の指定方法には下記のようなものがあります。

  • ColorIndex指定
  • SchemeColor指定
  • 組込定数指定
  • RGB指定

ColorIndex

ColorIndexは、1~56の56色と、0(塗り潰しなし)を指定できます。主にフォントの色指定やセルの枠・背景の色指定に使います。

With Range("B2")
  .Value = "TEST"
  .Font.ColorIndex = 5        '**文字色=青
  .Borders.ColorIndex = 7     '**枠の色=マゼンタ
  .Interior.ColorIndex = 24   '**背景色=薄い水色
End With

SchemeColor

ShcemeColorは、1~80の80色を指定できますが、いくつかの値は同値です。主に、Shapeオブジェクトの塗り潰しに使います。

With ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 100, 75, 75)
  
  With .Line
    .Visible = msoTrue
    .Weight = 0.25
    .ForeColor.SchemeColor = 2
    .Transparency = 0
  End With
      
  With .Fill
    .Visible = msoTrue
    .ForeColor.SchemeColor = 53
    .BackColor.SchemeColor = 13
    .TwoColorGradient msoGradientDiagonalUp, 1
    .RotateWithObject = msoTrue
  End With
End With

組込定数

組込定数は基本の8色を指定できます。主にフォントの色指定やセル背景の色指定に使います。

With Range("B2")
  .Value = "TEST"
  .Font.Color = vbBlue        '**文字色=青
  .Borders.Color = vbMagenta  '**枠の色=マゼンタ
  .Interior.Color = vbYellow  '**背景色=黄色
End With

RGB指定

RGB指定はRGB関数(またはその計算値)により色指定するものです。光の三原色(赤Red, 緑Green, 青Blue)の組み合わせにより色が決まります。各色0~255段階の濃度指定が可能です。

Range("B2").Font.Color = RGB(0, 0, 255)

ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0)

RGB関数について

RGB形式はRGB関数によってその値を示しており、実際にはRGB関数の計算値と同値です。

RGB関数 : RGB(r, g, b) = r * 256^0 + g * 256^1 + b * 256^ 2

例:
 RGB(0, 0, 0) = 0
 RGB(255, 255, 255) = 255 + 255 * 256 + 255 * 256^2
                    = 255 + 65280 + 16711680
                    = 16777215
よって、
Range("B2").Font.Color = RGB(255, 255, 255)
は、
Range("B2").Font.Color = 16777215
とも指定できる

各指定形式の比較表

ColorIndex SchemeColor 組込定数 RGB値
塗り潰しなし 0
xlColorIndexNone
- - -
  1 0 or 8 vbBlack RGB(0,0,0)
  2 1 or 9 vbWhite RGB(255,255,255)
  3 2 or 10 vbRed RGB(255,0,0)
  4 3 or 11 vbGreen RGB(0,255,0)
  5 4 or 12 vbBlue RGB(0,0,255)
  6 5 or 13 vbYellow RGB(255,255,0)
  7 6 or 14 vbMagenta RGB(255,0,255)
  8 7 or 15 vbCyan RGB(0,255,255)
  9 16 - RGB(128,0,0)
  10 17 - RGB(0,128,0)
  11 18 - RGB(0,0,128)
  12 19 - RGB(128,128,0)
  13 20 - RGB(128,0,128)
  14 21 - RGB(0,128,128)
  15 22 - RGB(192,192,192)
  16 23 - RGB(128,128,128)
  17 24 - RGB(153,153,255)
  18 25 - RGB(153,51,102)
  19 26 - RGB(255,255,204)
  20 27 - RGB(204,255,255)
  21 28 - RGB(102,0,102)
  22 29 - RGB(255,128,128)
  23 30 - RGB(0,102,204)
  24 31 - RGB(204,204,255)
  25 32 - RGB(0,0,128)
  26 33 - RGB(255,0,255)
  27 34 - RGB(255,255,0)
  28 35 - RGB(0,255,255)
  29 36 - RGB(128,0,128)
  30 37 - RGB(128,0,0)
  31 38 - RGB(0,128,128)
  32 39 - RGB(0,0,255)
  33 40 - RGB(0,204,255)
  34 41 - RGB(204,255,255)
  35 42 - RGB(204,255,204)
  36 43 - RGB(255,255,153)
  37 44 - RGB(153,204,255)
  38 45 - RGB(255,153,204)
  39 46 - RGB(204,153,255)
  40 47 - RGB(255,204,153)
  41 48 - RGB(51,102,255)
  42 49 - RGB(51,204,204)
  43 50 - RGB(153,204,0)
  44 51 - RGB(255,204,0)
  45 52 - RGB(255,153,0)
  46 53 - RGB(255,102,0)
  47 54 - RGB(102,102,153)
  48 55 - RGB(150,150,150)
  49 56 - RGB(0,51,102)
  50 57 - RGB(51,153,102)
  51 58 - RGB(0,51,0)
  52 59 - RGB(51,51,0)
  53 60 - RGB(153,51,0)
  54 61 - RGB(153,51,102)
  55 62 - RGB(51,51,153)
  56 63 - RGB(51,51,51)
ColorIndex SchemeColor 組込定数 RGB値
  - 64 - RGB(0,0,0)
  - 65 - RGB(255,255,255)
  - 66 - RGB(100,100,100)
  - 67 - RGB(240,240,240)
  - 68 - RGB(0,0,0)
  - 69 - RGB(255,255,255)
  - 70 - RGB(160,160,160)
  - 71 - RGB(0,120,215)
  - 72 - RGB(0,0,0)
  - 73 - RGB(200,200,200)
  - 74 - RGB(55,55,55)
  - 75 - RGB(255,255,255)
  - 76 - RGB(100,100,100)
  - 77 - RGB(0,0,0)
  - 78 - RGB(255,255,255)
  - 79 - RGB(0,0,0)
  - 80 - RGB(255,255,225)