|
すてぃっち さん、こんばんわ。
>もう1点、質問させてください。
>05/8/9(火) 20:13にご教授いただいたコードですが、
>元々の質問に立ち返ってみると、使えそうな気がしたので再考することにしました。
>******************************************************************
>"結果"という文字列:7行目
>"日付"という文字列:7行目
>
>M列に"結果"→O〜P列での結果が入る列(数式)
>N列に"日付"
>O〜P列に("確認項目")
>
>Q列に"結果"→S〜T列での結果が入る列(数式)
>R列に"日付"
>S〜T列に("確認項目")
>******************************************************************
2つの確認項目に対して、日付が1つのようなので、左に2列チェックして、「日付」があればそこに処理します。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Opos As Integer
Opos = 0 '初期値
If Target.Count = 1 Then
If Target.Row > 7 Then '7行目まではパス
With ActiveSheet.Cells(7, Target.Column) '1行目が見出し
If .Offset(0, -2).Value = "日付" Then '隣の列の1行目のセルの値が「日付」
Opos = -2 '2つ左の列
ElseIf .Offset(0, -1).Value = "日付" Then
Opos = -1 '1つ左の列
End If
'見出し:日付が該当する列にあったら
If Opos < 0 Then
Application.EnableEvents = False 'イベントがおきないように
'上記分岐をパスしたTargetセルの右側のセルの内容
With Target.Offset(0, Opos)
Select Case Target.Value
Case "": .ClearContents
Case Else: .Value = Date
End Select
End With
Application.EnableEvents = True 'イベント可
End If
End With
End If
End If
End Sub
こんな感じです。
|
|