|
yasu さん、おはようございます。
再現できるといいですが。
【準備】
↓ここから==============
1行目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
2行目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
3行目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4行目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
5行目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
6行目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
7行目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
8行目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
9行目,,,,,,,,,,範囲,,,,,,,,,,,,,,,7月1日,7月2日,7月3日,7月4日,7月5日
10行目,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
11行目,,,,,,,,,10,≦,100,,,,,,,,,,,,,,,,,,
12行目,,,,,,,,,10,<,100,,,,,,,,,,,,,,,,,,
13行目,,,,,,,,,10,〜,100,,,,,,,,,,,,,,,,,,
14行目,,,,,,,,,10,<,,,,,,,,,,,,,,,,,,,
15行目,,,,,,,,,,<,100,,,,,,,,,,,,,,,,,,
↑ここまで==============
上の15行をコピー
エクセルのA1セルにペースト(15行目がA15に入るように)
メニューバーの、データ → 区切り位置 → カンマやタブ
カンマにチェックをつけて実行すると、Z9に7月1日が入ります。
そのシートに、以下のイベントを記述
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cflg As Boolean
Application.EnableEvents = False
'
With Target
If .Count = 1 Then
If Not IsEmpty(.Value) Then
If IsNumeric(.Value) Then
If .Row >= 10 And .Column >= 26 Then
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 "≦", "〜"
'"〜"と"≦"との違いがわからないので統合。
'両方入っていないものは考慮にいれてありません
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
Else
.Interior.ColorIndex = xlNone '追加:まとめて選んだときは色消去
End If
End With
Application.EnableEvents = True
End Sub
これでうまくいきました。
|
|