私はいつも次のようにActiveSheet
を使用する習慣があります:ActiveWorkbook.ActiveSheet
。私は最近、 このMicrosoftページ にActiveSheet
を含まないActiveWorkbook
を含むコードに遭遇しました。そのページのタイトルはApplication.ActiveSheet
プロパティ。
これらの3行のコードに違いはありますか?
ActiveSheet
ActiveWorkbook.ActiveSheet
Application.ActiveSheet
これらはすべて同じものアクティブシートを参照していますが、コンテキストが期待どおりでない場合があります。 ActiveSheet
は最も制限が少なく、「現在の」ワークブックが何であれ参照します。 ActiveWorkbook.ActiveSheet
はそれをもう少し明確にします。これを、コードが実行されているワークブックであるThisworkbook
と比較してください。 Application.ActiveSheet
はどちらかアクティブなワークブックまたは指定されたワークブック/ウィンドウを参照します。複数のワークブックを開いている場合は、参照しているオブジェクトについて明示することが常に最善です。
重要な注意:単独で、一部のワークブックのコードモジュールThisWorkbook
に記述されている場合、ActiveSheet
はApplication.ActiveSheet
およびActiveWorkbook.ActiveSheet
(常に同じ)の両方とは異なります。この特殊なケースでは、ActiveSheet
がExcelアプリケーションのアクティブなブックでなくても、ThisWorkbook
はThisWorkbook.ActiveSheet
を参照します。