| 
    
     |  | ▼STi さん: こんばんは。
 > 色() = Array(xlNone, 3, 5, 10, 13)
 >の所で、「配列には割り当てられません」
 >というメッセージが出て、中断してしまいます。
 Excel2000では、エラーになりませんが・・・。
 >Private Sub Worksheet_Change(ByVal Target As Range)
 >  Dim newtarget As Range
 >  Dim crng As Range
 >  Dim 東西南北 As String
 Dim 色
 >  東西南北 = "東西南北"
 色 = Array(-4142, 3, 5, 10, 13) ' 心配なので実数値を入れました
 >'        色ナシ、赤、青、緑、紫
 >  Application.EnableEvents = False
 >  Set newtarget = Application.Intersect(Target, Range("b2:b65536"))
 >'                           ↑セルB2以降を対象
 >  If Not newtarget Is Nothing Then
 >    For Each crng In newtarget
 >     With crng.Offset(0, 3).Interior
 >       If crng.Value <> "" Then '未入力のとき処理は分岐
 
 >        .ColorIndex = 色(InStr(東西南北, crng.Value))
 >'                  厳密にはMatch関数の方がよいかも?
 >       Else
 >        .ColorIndex = xlNone
 >        End If
 >       If .ColorIndex > 0 Then .Pattern = xlSolid
 >       End With
 >     Next
 >    End If
 >  Application.EnableEvents = True
 >End Sub
 
 としたらどうでしょうか?
 
 |  |