解決済み

ExcelVBAのChangeイベントについて

  • 困ってます
  • 質問No.9608007
  • 閲覧数87
  • ありがとう数3
  • 気になる数1
  • 回答数4
  • コメント数0

お礼率 38% (16/42)

いつもお世話になります。
早速ですが下記の質問についてお願い致します。

VBAのWorkSheet_Changeイベントについてですが、
所定の行の場合実行する形の物を作りたいと思います。

現在表を作成しておりますが、一人の項目として4行を必要と
しております。
その後、別の人・別の人と入力項目があります。

ここで聞きたいのが使用する行数4行の内の「1行目」に変更を
行った場合実行するコードを書きたいです。

起点となるのが10行目です。
・10行目を変更したらコードが実行される。
・11~13行目に変更を加えてもコードは実行されない。
・14行目を変更したらコードが実行される。
・15~17行目に変更を加えてもコードは実行されない。
      ・
      ・
      ・
こんな感じです。

例えるなら、10・14・18・22・26と「10+4の倍数」は
実行されないコードを書くにはどの様にしたら良いでしょうか?

ご教授願います。

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

  • 回答No.4

ベストアンサー率 62% (445/708)

Visual Basic カテゴリマスター
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件)

  • 回答No.3

ベストアンサー率 28% (4476/15938)

他カテゴリのカテゴリマスター
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表示が現れました。
  • 回答No.2

ベストアンサー率 54% (507/935)

他カテゴリのカテゴリマスター
No1です。
起点を忘れてました。

If (Target.Row - 10) / 4 = Int((Target.Row - 10) / 4) And Target.Row >= 10 Then
  • 回答No.1

ベストアンサー率 54% (507/935)

他カテゴリのカテゴリマスター
> 10・14・18・22・26と「10+4の倍数」は
実行されないコードを

実行されるですよね。
If (Target.Row - 10) / 4 = Int((Target.Row - 10) / 4) Then
End If
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ