Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » 条件付き書式で4つ以上の条件を指定−Worksheet_Change

条件付き書式で4つ以上の条件を指定−Worksheet_Change

対象:Excel97, Excel2000, Excel2002, Excel2003

条件に応じて書式を変更する条件付き書式は、実務でとても役立つ機能の一つです。

2003までのExcelでは、条件を3つまで指定できるのですが、条件付き書式の便利さに気づいた方からは、
「条件付き書式で4つ以上の条件を指定したいのですが...?」
「条件付き書式で条件を4つ以上指定することはできないのでしょうか?」
といったご質問をいただくことがあります。

結論から言えば、Excel 2007では条件は無制限に指定できますが、2003までのExcelの[条件付き書式]機能で、条件を4つ以上指定することはできません。

[スポンサードリンク]

4つ以上の条件を指定して、条件に応じて自動的に書式を変更する必要があるのならば、VBA(Visual Basic for Applications)で、イベントプロシージャを作成してください。


▼条件に応じてフォントの色を変更するイベントプロシージャ
※B2:B11セルのフォント色が入力された値によって自動的に変更される例

Private Sub Worksheet_Change(ByVal Target As Range)

 Dim intColor As Integer

 If Target.Count > 1 Then Exit Sub
 If Intersect(Target, Range("B2:B11")) Is Nothing Then Exit Sub

 Select Case Target.Value

  Case Is <= 20
   intColor = 3
  Case 21 To 40
   intColor = 46
  Case 41 To 60
   intColor = 9
  Case 61 To 80
   intColor = 10
  Case Is > 80
   intColor = 5

 End Select

 Target.Font.ColorIndex = intColor

End Sub

▼サンプルファイル(002293.xls 27KByte)ダウンロード

B2:B11セルで、
20点以下「Case Is <= 20」
21点から40点まで「Case 21 To 40」
41点から60点まで「Case 41 To 60」
61点から80点まで「Case 61 To 80」
80点超「Case Is > 80」
という条件に応じてフォント色を変更する例です。

「If Intersect(Target, Range("B2:B11")) Is Nothing Then Exit Sub」という部分でB2:B11セルを書式変更の対象としています。他のセル範囲でこの機能を有効にするのなら、「Range("B2:B11")」の部分を修正してください。

Select Case文で、条件を指定して変数「intColor」に値を代入して、「Target.Font.ColorIndex = intColor」でフォントの色を実際に変更します。ここで指定している色については、「ColorIndexプロパティ値一覧」というネタで一覧にしていますのでご参照ください。

関連語句
3つ以上の条件

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » 条件付き書式で4つ以上の条件を指定−Worksheet_Change

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » 条件付き書式で4つ以上の条件を指定−Worksheet_Change

「イベントプロシージャ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.