Itemシートの追加とシート見出しの変更
まだ、「Item」シートを作成していない時は、シートを追加します。
- Excel2016の場合は、シート見出し右側に表示されている「+」アイコンををクリックするとワークシートを追加できます。Excelのバージョンにかかわらず、シート見出しを右クリックして表示されるメニューから「挿入」を選択するとワークシートを追加できます
- 新しいシート「Sheet○」ができたら、シート見出しをダブルクリックしてシート名を「Item」に変更します
背景色・文字色の設定
Itemシートができたら以下の見本のようにセルを枠ごとの背景色と文字色にし、馬番を枠番色に対応した塗りに設定します。5頭立をE列(列位置5)にしておきます。
セルの塗り色(背景色)を設定するには、Rangeオブジェクト下のInteriorオブジェクトを操作します。セルの文字色を設定するには、FontオブジェクトのColorIndexプロパティかColorプロパティを使います。
まず、8頭立ての1枠から8枠までの枠色を作り、後はそれをベースとして手作業でコピペして進めてください(泣)マクロで作る場合は罫線の引き方を参考にすればいいのですが、一回作ってしまえば良いので、そこまで労力を使いません(笑)。
- プロジェクト内のオブジェクト一覧から、シートオブジェクトの(Item)をダブルクリック
- 以下のマクロをコードウィンドウに書いていきます
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
セルの塗りと外枠罫線の設定
セルの外枠に罫線を引くのにBorderAround メソッドを使いました。
書式:[範囲].BorderAround [線の種類], [線の太さ], [色番号], [色], [テーマ色]
引数と戻り値
- 範囲・・・・・対象となるRangeオブジェクトを指定します
- 線の種類・・・罫線の種類を表す定数(XlLineStyle 列挙型)または、その値を指定します。
定数 | 値 | 内容 |
xlContinuous | 1 | 実線 |
xlDashDot | 4 | 一点鎖線 |
xlDashDotDot | 5 | ニ点鎖線 |
xlSlantDashDot | 13 | 斜破線 |
xlDash | -4115 | 破線 |
xlDot | -4118 | 点線 |
xlDouble | -4119 | 2本線 |
xlLineStyleNone | -4142 | 線なし |
- 線の太さ ・・・ 罫線の太さを表す定数(XlBorderWeight 列挙型)または、その値を指定します。
定数 | 値 | 内容 |
xlMedium | -4138 | 普通 |
xlHairline | 1 | 細線 (最も細い罫線) |
xlThin | 2 | 極細 |
xlThick | 4 | 太線 (最も太い罫線) |
色指定ColorIndexプロパティに対応するColorプロパティ
セルの色などをはじめとする色の設定は、Excel2003までは56色、Excel2007からは1,600万色となっています。
Excel2003でよく使用されていたColorIndexプロパティ、ここで使用する1枠から8枠までの基本の色設定と対応するColorプロパティの設定値の一覧です。
ColorIndexプロパティは、オプションで色を変更することができますので、絶対的な色の設定ではありません。Colorプロパティは、絶対的な色指定です。
枠番と枠色 | ColorIndex | RGB | 10進法 |
1枠・白 | 2 | RGB(255,255,255) | 16777215 |
2枠・黒 | 1 | RGB(0,0,0) | 0 |
3枠・赤 | 3 | RGB(255,0,0) | 255 |
4枠・青 | 23 | RGB(0,102,204) | 13395456 |
5枠・黄 | 6 | RGB(255,255,0) | 65535 |
6枠・緑 | 50 | RGB(51,153,102) | 6723891 |
7枠・橙 | 45 | RGB(255,153,0) | 39423 |
8枠・桃 | 26 | RGB(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に以下のように好みの色で塗りつぶしてください。
- [ホーム]〜[塗りつぶしの色]の横にある矢印をクリック
- その他の色をクリック
- [色]ダイアボックOKスで目的の色を選択します
- 新規の色が選択した色に変化します
- [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
- セルA1が目的の色に塗られた状態。
- [開発タブ]〜[マクロ]をクリック
- 登録したマクロ名「カラー情報を取得」をクリック
- 実行をクリック
- セルA1の塗りの色情報がセルA2〜A4に書込まれます。
セルA2・・・ColorIndex
セルA3・・・10進法
セルA4・・・RGB
コメント