- ベストアンサー
WorkSheetのChangeイベントの引数
WorkSheetオブジェクトのChangeイベント ある教材で、TargetがC3のケースを表現する際、 If Target .Row = 4 And .Column = 3 Then と有った。 回りくどい書き方に見えるのですが、他に表現方法は無いのでしょうか。 この書き方には、何か、理由が有るのでしょうか。 宜しくお願い致します。
- みんなの回答 (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 と勝手に読み替えてしまうからです。 (気を利かして読み替えてくれるからです。)
その他の回答 (1)
- HohoPapa
- ベストアンサー率65% (455/693)
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 といった書き方ができますが、 私は、 行番号と列番号を数値で扱う方が好みです。
お礼
有難う御座います。参考になりました。
お礼
成る程!そうです、何故cellsやrangeで指定出来ないのかと、疑問だったのです。有難う御座います。