プロが教える店舗&オフィスのセキュリティ対策術

E列 G列 どちらかに日付のデータが入力
されたら
A列の背景色に色を付けるとやりたいのですが、

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("E:G")) Is Nothing Then ここまではまちがっていないとおもんですが
このあと

if isdate(target.....?
なんとどうしたらよいかわかる方おしえてくれませんでしょうか
End Sub

質問者からの補足コメント

  • つらい・・・

    もう一つ条件があり、偶数行のみとしたいのですが

      補足日時:2019/06/14 22:27

A 回答 (1件)

こんばんは!



>If Not Intersect(Target, Range("E:G")) Is Nothing Then
ではE~G列すべて(F列も含む)になってしまいます。

一例です。
A列のセルを黄色で塗りつぶす場合は・・・

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("E:E,G:G")) Is Nothing Or Target.Count > 1 Then Exit Sub
  With Target
   If .Row Mod 2 = 0 Then
    If IsDate(.Value) Then
     Cells(.Row, "A").Interior.ColorIndex = 6
    End If
   End If
  End With
End Sub

といった感じで大丈夫だと思います。

※ 本来であれば細かいエラー処理が必要だと思いますが、
まずはこの程度で・・・m(_ _)m
    • good
    • 0
この回答へのお礼

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("E:E,G:G")) Is Nothing
Or Target.Count > 1 Then Exit Sub

Target.count > 1 この部分まで
追加でつけて有難うございます。

  With Target
   If .Row Mod 2 = 0 Then
    If IsDate(.Value) Then
     Cells(.Row, "A").Interior.ColorIndex = 6
    End If
   End If
  End With
End Sub
もちろん
問題ないです
きれいなコード有難うございます。

お礼日時:2019/06/15 07:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!