| 
    
     |  | 本題からは逸れますが、 > On Error Resume Next
 > Set r = Application.InputBox("任意のセルを選択してください", , , , , , , 8)
 > On Error GoTo 0
 > If Not r Is Nothing Then
 >  On Error Resume Next
 >  Set r = Intersect(r.EntireRow, r.Parent.Range("B:F"))
 >  On Error GoTo 0
 >  If Not r Is Nothing Then
 >   MsgBox r.Address(, , , True)
 >  Else
 >   MsgBox "範囲が取得できません"
 >  End If
 > Else
 >  MsgBox "キャンセルしました"
 > End If
 は、あまりいいサンプルではありませんね〜。
 
 2度目のエラートラップは何のため?と思います。
 Intersectメソッドでは、共有範囲がなければNothingを返す仕様ですしね。
 もしエラーを返すと誤認し、On Errorを咬ましたのかのかとも受け止めましたが、
 それならば、既に使用済みのrという変数で受けてしまっては、
 Nothing判定に結びつかないし、とてもチグハグに感じます。
 
 もっとも、今回のIntersectメソッドの使い方に関しては、
 Nothingを返すことはないと思いますけど。
 
 正常に動くからいいということなのであれば、余計なお世話ですが。
 
 
 |  |