• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBAのChangeイベントについて)

ExcelVBAのChangeイベントについて

このQ&Aのポイント
  • VBAのWorkSheet_Changeイベントを使用して、特定の行の変更を検知するコードを作成したいです。
  • 行数4行のうち、1行目に変更があった場合にコードが実行されるようにしたいです。
  • 行数10行目、14行目、18行目、22行目、26行目など、10の倍数行にはコードが実行されないようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

10・14・18・22・26・・・・ 以外は実行されない Private Sub Worksheet_Change(ByVal Target As Range)   With Target     If .Row < 10 Or .Row Mod 4 <> 2 Then Exit Sub     MsgBox .Row & "行目、実行します。"   End With End Sub

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= 10 And ((Target.Row - 9) Mod 4 = 1) Then MsgBox Target.Row '本番ではMsgBox の代わりに、処理のコードを書く End If End Sub などどうですか。 ーー テストで、1行目ー30行目までのセルに入力すると 第10,14,18,22、26,30の行で、入力すると、Msgbox表示が現れました。

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.2

No1です。 起点を忘れてました。 If (Target.Row - 10) / 4 = Int((Target.Row - 10) / 4) And Target.Row >= 10 Then

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.1

> 10・14・18・22・26と「10+4の倍数」は 実行されないコードを 実行されるですよね。 If (Target.Row - 10) / 4 = Int((Target.Row - 10) / 4) Then End If

関連するQ&A