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

Worksheet_Changeのイベントに下記のような処理を書きました。

内容はI8~I1000までの間のセルで、入力された、変更された場合に、ある処
理(例ではメッセージにしています)をするということをしたいのですが、セ
ルの値を変えても全くうごきません。

どこか記述がおかしいでしょうか。
よろしくお願いします。

'◆◆C列にデータ入力(変更された)ときの処理◆◆
If Not Application.Intersect(Target, Range("c8:c1000")) Is Nothing The
n
MsgBox "変わりました"
Else
Exit Sub
End If

A 回答 (4件)

たぶんKenKenSPさんの回答が的を射ていると思いますが


当方がVBAを始めたころの失敗談を。

Sheet1のイベントを処理しようとコードを書き実行したのですが何ら反応がありません。
1時間余りあれやこれやしてやっと解決。
原因は、Sheet1のモジュールに書かなければいけないコードを、Sheet2のモジュールに書いてました。

そんなこともあるやも知れませんので、ダメもとでちゃんと該当シートモジュールにコードを置いてあるか確認してみてください。
 
    • good
    • 0

> 内容はI8~I1000までの間のセルで


If Not Application.Intersect(Target, Range("I8:I1000")) Is Nothing Then

これで動かなければ「マクロが無効」になっているか

Application.EnableEvents = False

になってます。この場合の回復方法は、下記を実行して下さい。

Sub aaaa()
  Application.EnableEvents = True
End Sub
    • good
    • 0

これでOKでは。


If Application.Intersect(Target, Range("C8:C1000")) Is Nothing Then Exit Sub
Cancel = True
MsgBox "変わりました"
    • good
    • 0

If Target.Column = 9 And Target.Row >= 8 And Target.Row <= 1000 Then



MsgBox "a"
End If

Changeイベントに記述でいけると思います。
    • good
    • 0

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