VBAで指定シートの前後(左右)のシートを参照する

指定シートの前後(左右)のシートを参照するには

指定したシートの前(左)や後(右)のシートを参照する場合には、PreviousプロパティとNextプロパティを利用します。

Previousプロパティが左のシート、Nextプロパティが右のシートを指します。左右にシートがない場合はNothingを返します。

Nothingのシートを選択しようとするとエラーになるため、左右のシートを選択する際にはNothingかどうかの判定は必須になります。

いずれのプロパティもシートの種類に応じたオブジェクトを返します。

構文

Property シートオブジェクト.Previous As Object
Property シートオブジェクト.Next As Object

Worksheet Previous、Nextともに親オブジェクトにシートを指定します。定義上はWorksheetとなっていますがワークシートだけでなくグラフシート、マクロシート、ダイアログシートを指定することも可能です。
戻り値 戻り値は指定したシートの左右のシートのオブジェクトが返却されます。

ワークシートかマクロシートの場合はWorksheetオブジェクト、グラフシートの場合はGraphオブジェクト、ダイアログシートの場合はDialogSheetオブジェクト、と参照したシートによって異なります。

指定したシートが一番左の場合のPreviousプロパティや一番右のシートのNextプロパティの場合はNothingが返却されます。

サンプルコード

左のシートを選択するサンプルコードです。左にシートがある場合のみ選択します。

上のコードをPreviousをNextにしただけです。右のシートを選択するサンプルコードです。右にシートがある場合のみ選択します。

上記の2つのサンプルとも、左右の参照先のシートが非表示になっている場合は選択しないようにしています。

非表示のシートを表示しようとすると実行時エラーになります。

非表示のシートを表示したい場合は事前にVisibleプロパティを変更しておく必要があります。

関連記事

サブコンテンツ

このページの先頭へ