• ベストアンサー

WorkSheetのChangeイベントの引数

WorkSheetオブジェクトのChangeイベント ある教材で、TargetがC3のケースを表現する際、 If Target .Row = 4 And .Column = 3 Then と有った。 回りくどい書き方に見えるのですが、他に表現方法は無いのでしょうか。 この書き方には、何か、理由が有るのでしょうか。 宜しくお願い致します。

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

Private Sub Worksheet_SelectionChange(ByVal Target As Range)  If Target = Cells(3, 2) Then   MsgBox ("AAA")  End If End Sub なぜ、↑のような記述ができないのか? (できるものの正しい動きにならないのか) を疑問視しているのであれば、それは、正当な疑問と思います。 かぜか?、それは、... 冒頭のような記述をするとVBAは、  If Target.Value = Cells(3, 2).Value Then   MsgBox ("AAA")  End If と勝手に読み替えてしまうからです。 (気を利かして読み替えてくれるからです。)

noname#233045
質問者

お礼

成る程!そうです、何故cellsやrangeで指定出来ないのかと、疑問だったのです。有難う御座います。

その他の回答 (1)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)  If Target.Address <> "$A$3" Then Exit Sub  MsgBox ("AAA") End Sub や Private Sub Worksheet_SelectionChange(ByVal Target As Range)  If Target.Address = "$A$3" Then   MsgBox ("BBB")  End If End Sub といった書き方ができますが、 私は、 行番号と列番号を数値で扱う方が好みです。

noname#233045
質問者

お礼

有難う御座います。参考になりました。

関連するQ&A