|
ヒライ さん、こんにちわ。
>例
>100<150 →値が100より大きく150より小さい時は真、そうでなければ偽(色を付ける)
>100< →値が100より大きければ真、そうでなければ偽(色を付ける)
>という具合で
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngCol As Long
Dim lngRow As Long
Dim Cflg As Boolean
'
Application.EnableEvents = False
'
lngCol = Cells(10, 256).End(xlToLeft).Column
lngRow = Cells(Rows.Count, 26).End(xlUp).Row
With Target
If .Count = 1 Then
If Not IsEmpty(.Value) Then
If IsNumeric(.Value) Then
If (.Row >= 10 And .Row <= lngRow) And (.Column >= 26 And .Column >= lngCol) Then
MsgBox Cells(.Row, 11).Address
Select Case Cells(.Row, 11).Value
Case "<"
'両方入っていないものは考慮にいれてありません
If Cells(.Row, 10).Value = "" Then
'X<
Cflg = .Value < Cells(.Row, 12).Value
Else
'<X
Cflg = Cells(.Row, 10).Value < .Value
'<X<
If Cells(.Row, 12).Value <> "" Then _
Cflg = Cflg And (.Value < Cells(.Row, 12).Value)
End If
Case "≦", "〜"
'"〜"と"≦"との違いがわからないので統合。
'両方入っていないものは考慮にいれてありません
MsgBox Cells(.Row, 10).Value
If Cells(.Row, 10).Value = "" Then
'X<=
Cflg = .Value <= Cells(.Row, 12).Value
Else
'<=X
Cflg = Cells(.Row, 10).Value <= .Value
'<=X<=
If Cells(.Row, 12).Value <> "" Then _
Cflg = Cflg And (.Value <= Cells(.Row, 12).Value)
End If
Case Else
Cflg = False
End Select
'ここで色を変化させる
Select Case Cflg
Case True: .Interior.ColorIndex = 8 '条件に適応
Case False: .Interior.ColorIndex = xlNone
End Select
End If
End If
End If
End If
End With
Application.EnableEvents = True
End Sub
こんな感じです。
|
|