|    | 
     どもども 
 
> 
>On Error GoTo 0はエラーが発生した処理を中止して次の処理を実行する。 
 
中止して・・・というか、無視して? 
というか、 
「On Error Resume Next」が、エラーが発生した場合もその次から処理を続行する・・・という命令です。 
 
'============================================== 
ヘルプより 
On Error Resume Next  
実行時エラーが発生してもプログラムを中断せず、エラーが発生したステートメントの次のステートメントから実行を継続します。オブジェクトを操作する場合は、On Error GoTo ステートメントではなく、このステートメントを使ってください。 
  
On Error GoTo 0  
現在のプロシージャに含まれる使用可能なエラー処理ルーチンを無効にします。  
'============================================== 
 
 
>ですから、次のif文を実行するはず、と考えました。 
 
うんうん。 
 
>そしてデバッグしたら、実行エラー:オブジェクトが必要です、と出て・・。 
 
デバッグしたら・・の意味がいまいちわからんのですが・・・ 
(デバッグって「バグ」を取り除くって意味やで?) 
 
次の 
 
If Not r Is Nothing Then 
 
で、エラーが出るのですが? 
どう考えても、エラーが出そうな気はしないのですが・・・ 
 
↑の、条件文の意味わかってはります? 
「Not r Is Nothing」・・・「r」が「Nothing」じゃない。 
つまり、「r」に値が入ってるってことです。 
 
もし、空白セルがなく、 
On Errorでサンドイッチした 
Set r = Worksheets("Sheet1").Range("AB3,AC3").SpecialCells(xlCellTypeBlanks) 
で、入るべき該当セルがなくて、エラーが発生した場合、 
「r」には何も入ってないまま、If文に突入するわけです。 
 
その場合、「Not r Is Nothing」じゃないわけだから、 
If文が通らなくて、そのまま、何事もなく終了♪ 
 
・・・に、なるはずなんやけど? 
 
 
>On Error Resume Next 
>Set r = Worksheets("Sheet1").Range("AB3,AC3").SpecialCells(xlCellTypeBlanks) 
>On Error GoTo 0 
> 
 
 ここで、こんなんいれたら、「r」に何のセルも入ってないから 
 「オブジェクトが必要です」って怒られるのは当然でっす!  
>「r.SpecialCells (xlCellTypeBlanks)」 
>   
> If Not r Is Nothing Then 
 | 
     
    
   |