カラーの設定(セルの塗りと文字色)

スポンサーリンク
Itemシートの追加とシート見出しの変更

まだ、「Item」シートを作成していない時は、シートを追加します。

  1. Excel2016の場合は、シート見出し右側に表示されている「+」アイコンををクリックするとワークシートを追加できます。Excelのバージョンにかかわらず、シート見出しを右クリックして表示されるメニューから「挿入」を選択するとワークシートを追加できます
  2. 新しいシート「Sheet○」ができたら、シート見出しをダブルクリックしてシート名を「Item」に変更します
背景色・文字色の設定

Itemシートができたら以下の見本のようにセルを枠ごとの背景色と文字色にし、馬番を枠番色に対応した塗りに設定します。5頭立をE列(列位置5)にしておきます。

セルの塗り色(背景色)を設定するには、Rangeオブジェクト下のInteriorオブジェクトを操作します。セルの文字色を設定するには、FontオブジェクトのColorIndexプロパティかColorプロパティを使います。
まず、8頭立ての1枠から8枠までの枠色を作り、後はそれをベースとして手作業でコピペして進めてください(泣)マクロで作る場合は罫線の引き方を参考にすればいいのですが、一回作ってしまえば良いので、そこまで労力を使いません(笑)。

  1. プロジェクト内のオブジェクト一覧から、シートオブジェクトの(Item)をダブルクリック
  2. 以下のマクロをコードウィンドウに書いていきます
 Sub 指定色でセルを塗る()
    
     Dim i As Long
     Dim bckGrnd As Long
     Dim fnt As Long
     
         'セルを指定色で塗る
         For i = 1 To 8
             Select Case i             '1
                 Case 1      ' i=1の時は1枠の設定
                     bckGrnd= 2     '背景色は白   
                     fnt = 1             '文字色は黒
                 Case 2      ' i=2の時は2枠の設定(以下 i=3,4,5,6,7,8)
                     bckGrnd = 1     '黒
                     fnt = 2              '白
                 Case 3
                     bckGrnd = 3     '赤
                     fnt = 2              '白
                 Case 4
                     bckGrnd = 23    '青
                     fnt = 2               '白
                 Case 5
                     bckGrnd = 6     ' 黄
                     fnt = 1              '黒
                 Case 6
                     bckGrnd = 50    '緑
                     fnt = 2              '白
                 Case 7
                     bckGrnd = 45    '橙
                     fnt = 2               '白
                 Case 8
                     bckGrnd = 26    '桃
                     fnt = 2               ' 白
                     
             End Select
                 
                 With Cells(1 + i, "h")                '2                     
                     .Interior.ColorIndex = bckGrnd     '3
                     .Font.ColorIndex = fnt                 '4
                     .Font.Size = 9                              '5
                     .HorizontalAlignment = xlCenter   '6
                     .BorderAround 1, 2, 1                  '7
                End With 

                 Cells(1 + i, "h") = i    '枠番号を書込む
         Next i
 End Sub 
かいせつ
  1. Select Case文は複数の条件で処理を分けられる条件分岐の一つです。基本的な書き方は、Select Caseに比較したい値を指定し、続くCaseに条件を書きます。ここでは「i」が「1(1番枠)」のとき背景色は「白」文字色は「黒」に指定しています
  2. Withはステートメントの一種です。WithとEnd Withの間にある、先頭がピリオドで始まっているオブジェクト式は「Cells(1+i,”h”)」(主語)を省略できます
  3. セルを指定した色で塗りつぶします
  4. 文字色(フォントカラー)を指定
  5. フォントサイズを9ポイントにしました
  6. 文字をセンターに揃える
  7. セル(選択範囲)に囲み線を設定
    [範囲].BorderAround [線の種類], [線の太さ], [色番号], [色], [テーマ色]
    範囲.BorderAround 1,2,1
    [線の種類] 1・・・実線
    [線の太さ] 2・・・極細
    [色番号]  1・・・黒
かいせつ
  1. 開発タブ〜マクロ〜「指定色でセルを塗る」をクリック
  2. 「実行」をクリック

H列(列位置8)に1枠から8枠までを指定色で塗ることができました。あとは「Item」シートの見本のようにコピペして完成させてください。

セルの塗りと外枠罫線の設定

セルの外枠に罫線を引くのにBorderAround メソッドを使いました。
書式:[範囲].BorderAround [線の種類], [線の太さ], [色番号], [色], [テーマ色]

引数と戻り値
  • 範囲・・・・・対象となるRangeオブジェクトを指定します
  • 線の種類・・・罫線の種類を表す定数(XlLineStyle 列挙型)または、その値を指定します。
定数内容
xlContinuous1実線
xlDashDot4一点鎖線
xlDashDotDot5ニ点鎖線
xlSlantDashDot13斜破線
xlDash-4115破線
xlDot-4118点線
xlDouble-41192本線
xlLineStyleNone-4142線なし
  • 線の太さ  ・・・  罫線の太さを表す定数(XlBorderWeight 列挙型)または、その値を指定します。
定数内容
xlMedium-4138普通
xlHairline1細線 (最も細い罫線)
xlThin2極細
xlThick4太線 (最も太い罫線)
色指定ColorIndexプロパティに対応するColorプロパティ

セルの色などをはじめとする色の設定は、Excel2003までは56色、Excel2007からは1,600万色となっています。
Excel2003でよく使用されていたColorIndexプロパティ、ここで使用する1枠から8枠までの基本の色設定と対応するColorプロパティの設定値の一覧です。
ColorIndexプロパティは、オプションで色を変更することができますので、絶対的な色の設定ではありません。Colorプロパティは、絶対的な色指定です。

枠番と枠色ColorIndexRGB10進法
1枠・白2RGB(255,255,255)16777215
2枠・黒1RGB(0,0,0)0
3枠・赤3RGB(255,0,0)255
4枠・青23RGB(0,102,204)13395456
5枠・黄6RGB(255,255,0)65535
6枠・緑50RGB(51,153,102)6723891
7枠・橙45RGB(255,153,0)39423
8枠・桃26RGB(255,0,255)16711935
色指定の記述方法
  • セルA1の塗りに1枠の白を指定したい場合、次のように記述することができます。
    Range(“a1”).Interior.ColorIndex = 2
    Range(“a1”).Interior.Color = 16777215
    Range(“a1”).Interior.Color = RGB(255, 255, 255)
  • セルA1の文字色を黒に指定したい場合、次のように記述することができます。
    Range(“a1”).Font.ColorIndex = 1
    Range(“a1”).Font.Color= 0
    Range(“a1”).Font.Color= RGB(0,0,0)
セルの色情報を取得する

セルのカラー情報を取得するマクロです。好みの色でセルを塗りつぶした時に、その色をマクロの中で使うには色情報を知らなければ「Color」で指定できません。セルA1に以下のように好みの色で塗りつぶしてください。

  1. [ホーム]〜[塗りつぶしの色]の横にある矢印をクリック
  2. その他の色をクリック
  1. [色]ダイアボックOKスで目的の色を選択します
  2. 新規の色が選択した色に変化します
  3. [OK]をクリック

セルA1が好みの色で塗りつぶされました。以下のマクロを実行すると色情報を取得することができます。

Sub カラー情報取得()
     
     Dim myR As Long
     Dim myG As Long
     Dim myB As Long
     Dim MyColor As Long
     
         '塗りのカラー情報取得(セルA1を調べたい色で塗っておく)
         Cells(2, "a") = Cells(1, "a").Interior.ColorIndex 'ColorIndex取得
         
         MyColor = Cells(1, "a").Interior.Color              '10進法取得
         
         Cells(3, "a") = MyColor
 
             myR = MyColor Mod 256                      '256で割った余りを取得
             myG = Int(MyColor / 256) Mod 256        '256で割った整数商で、256で割った余りを取得
             myB = Int(MyColor / 256 / 256)           '256で2回割った整数商を取得
     
         'A4にRGB値を出力
         Cells(4, "a") = "RGB(" & myR & "," & myG & "," & myB & ")"    'RGB取得
 
 End Sub 
  1. セルA1が目的の色に塗られた状態。
  2. [開発タブ]〜[マクロ]をクリック
  3. 登録したマクロ名「カラー情報を取得」をクリック
  4. 実行をクリック
  5. セルA1の塗りの色情報がセルA2〜A4に書込まれます。
    セルA2・・・ColorIndex
    セルA3・・・10進法
    セルA4・・・RGB

コメント

タイトルとURLをコピーしました