こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Changeイベントについて

エクセル2003のPrivate Sub Worksheet_Change(ByVal Target As Range)の上で
Targetの指定方法ですが
1 単一セル
2 単一セルを複数(かなり多数)
3 セル範囲
4 セル範囲を複数(かなり多数)
と4種に分けて、1と3はわかりましたが、2と3がわかりません
どなたかご教授ください
また、セルの値が変化したときに、マクロを起動させたいのですが、入力セルごとに(入力する値が同じ場合でも)、違うマクロを起動させる場合、どのように振り分ければいいでしょうか

投稿日時 - 2012-08-20 14:23:42

QNo.7653770

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

趣味とか「実際にヤリタイ仕事の内容」に応じて,やりようは様々あります。

private sub worksheet_change(byval Target as excel.range)
 dim h as range
 on error resume next
 
 for each h in application.intersect(target, range("A:A"))
’A列を編集した場合(単セル・セル範囲・飛び飛びセル)
  msgbox h.address & " A run" ’具体的な仕事を書く 以下同じ
 next

 for each h in application.intersect(target, range("C:C"))
’C列を編集した場合(単セル・セル範囲・飛び飛びセル)
  msgbox h.address & " C run"
 next
end sub

投稿日時 - 2012-08-20 17:08:43

お礼

交通事故のため、急遽の入院、パソコンは大破、で
遅くればせながら、御礼のみにて失礼いたします

投稿日時 - 2012-09-17 01:24:25

ANo.2

2について例えば
If Target.Address = "$A$1" Or Target.Address = "$A$10" Or Target.Address = "$A$15" Then
4について例えば
If (Target.Row >= 5 And Target.Row <= 10 And Target.Column >= 1 And Target.Column <= 3) Or (Target.Row >= 20 And Target.Row <= 30 And Target.Column >= 4 And Target.Column <= 5) Then
その他について例えば
If Target.Address = "$A$5" Then
Call 表示
End If
表示というマクロを呼び出すにはCallメソッドを使います。

投稿日時 - 2012-08-20 16:03:06

お礼

交通事故のため、急遽の入院、パソコンは大破、で
遅くればせながら、御礼のみにて失礼いたします

投稿日時 - 2012-09-17 01:23:22

ANo.1

Intersectメソッドを使ってみましょう

投稿日時 - 2012-08-20 15:40:14

お礼

交通事故のため、急遽の入院、パソコンは大破、で
遅くればせながら、御礼のみにて失礼いたします。

投稿日時 - 2012-09-17 01:22:36

あなたにオススメの質問