| 
    
     |  | はじめまして。 現在、作成したマクロの動きを調査していて、
 シート削除の以下の2つの動きが微妙に異なることに気づきました。
 a) Worksheets(1).Delete
 b) Sheet1.Delete
 a:すぐにシートが削除され、VBEのプロジェクト内からも、すぐに無くなります。
 b:すぐにシートが削除され、VBEのプロジェクト内は、処理終了後に無くなります。
 
 また、以下のようにすると、
 Debug.Print Sheet1.Name
 Worksheets(1).Delete
 上記bと同じ動きになります。
 どうも、コード名を利用したのち、シートを削除すると、
 プロジェクト内のオブジェクトは、処理終了後にしかなくならないようです。
 
 すべてWorksheets(1)のような記述にすれば、解決するのは分かっているのですが
 どうしてコード名を利用した処理の後にシートを削除すると、
 プロジェクト内のオブジェクトは、処理終了後にしか無くならないのか、
 理由を知りたいと思っています。
 
 どなたか、ご教授いただけないでしょうか
 よろしくお願いいたします。
 
 動作環境
 OS: Windows 10 64ビット メモリ4GB
 Excel: Excel 2016 32ビット
 
 |  |