VBAで作業中のシートを参照する

ActiveSheetプロパティ

一番手前に表示されているシートであるアクティブシートを参照するにはActiveSheetプロパティを利用します。

アクティブシートはブックに紐づくため、3つのブックを開いている場合は3つのブックそれぞれでアクティブシートが存在することになります。

1つのブックを複数のウインドウで開いた場合の注意点

Excel2007以降の機能ですが、表示タブ→ウィンドウグループ→新しいウィンドウを開く、を選択すると、同じブックを複数のウインドウで開くことが出来ます。

ブック名にはブック名とコロン(:)+連番が表示され、同じブックでも区別されます。このとき、同じブックでもウインドウが異なれば以下のようにアクティブシートもSheet1とSheet2で異なる場合があります。

この場合のActiveSheetプロパティはウインドウそれぞれで異なります。ブック名だけで判断できない場合があるため、複数のウインドウで表示している場合のアクティブシートの参照には注意が必要です。

構文

Property Application.ActiveSheet As Object
Property Window.ActiveSheet As Object
Property Workbook.ActiveSheet As Object

ActiveSheetプロパティの親オブジェクトとして、Applicationオブジェクト、Windowオブジェクト、Workbookオブジェクトのいずれかを指定します。

省略時は作業中のアクティブブックのアクティブシートが参照対象になります。

サンプルコード

親オブジェクトをApplicationオブジェクト、Windowオブジェクト、WorkbookオブジェクトなどそれぞれでのActivesheetの取得を行うサンプルです。

PERSONAL.XLSBを利用している場合はApplication.Windows(x).Activesheetで取得することが可能です。

関連記事

サブコンテンツ

このページの先頭へ