Excel VBA 左隣りを参照する Previous 右隣りを参照するNext プロパティ

スポンサーリンク

Previous【プリビアス】プロパティ

指定したシートまたは、セルの左隣りのシートまたは、セルを参照するにはWorksheet【ワークシート】オブジェクトまたは、Range【レンジ】オブジェクトのPrevious【プリビアス】プロパティを使用します。Previous【プリビアス】は「前」という意味があります。

Previous【プリビアス】プロパティの書式と設定値の説明

オブジェクト.Previous

  • オブジェクト(必須)
    移動の基準となるシートまたはセルをWorksheet【ワークシート】オブジェクトまたは、Range【レンジ】オブジェクトで指定します。シートを指定した場合は指定したシートの左隣りのシートが参照されます。セルを指定した場合は指定したセルの左隣りのセルが参照されます。

※ Previous【プリビアス】プロパティは参照するだけなので、選択する場合は、Select【セレクト】メソッドやActivate【アクティベイト】 メソッドなどを使用して選択します。

※ 基準がセルの場合、セル範囲を指定してもセル範囲の左上隅のセルの左隣りの単一セルのみ参照されます。

※ 左隣りが参照できない状態、例えば、左隣りにシートが無い場合やA列のセルを基準にした場合はNothing【ナッシング】が返り、エラーになります。


左隣りにシートがあるかわからない場合の判定をするコードと解説

Sub プリビアス()
If Worksheets("sheet1").Previous Is Nothing Then
MsgBox "左側にシートはありません。"
Else
Worksheets("sheet1").Previous.Select
End If
End Sub
2行目【If Worksheets(“sheet1”).Previous Is Nothing Then】
If【イフ】ステートメントで条件分岐をします。Sheet1に対してPrevious【プリビアス】プロパティを実行しSheet1の左隣りにシートが無い場合はNothingが返るのでオブジェクト比較演算子のIs【イズ】はTrueを返します。つまりSheet1の左側にシートがなかったときを定義しています。


3行目【MsgBox “左側にシートはありません。”】
2行目の条件が成立した場合つまり、Sheet1の左隣りにシートが無い場合の処理です。
MsgBox【メッセージボックス】関数を使用してシートが無いことを伝え、7行目のEnd Subまで処理がジャンプし、Sub【サブ】プロシージャーを終了してPrevius【プリビアス】プロパティがNoting【ナッシング】を返した場合つまりSheet1の左隣りにシートが無い場合のエラーを防ぎます。


4~5行目【Else
Worksheets(“sheet1”).Previous.Select】

Else【エルズ】キーワードを使用して以下に2行目の条件式が成立しなかった場合つまり、Sheet1の左隣りにシートがある場合の処理を記述します。Previus【プリビアス】プロパティで左隣りのシートを参照してSelect【セレクト】メソッドで選択します。


Next【ネクスト】プロパティ

指定したシートまたは、セルの右隣りのシートまたは、セルを参照するにはWorksheet【ワークシート】オブジェクトまたは、Range【レンジ】オブジェクトのNext【ネクスト】プロパティを使用します。Next【ネクスト】は「次」という意味があります。

Next【ネクスト】プロパティの書式と設定値の説明

オブジェクト.Next

  • オブジェクト(必須)
    移動の基準となるシートまたはセルをWorksheet【ワークシート】オブジェクトまたは、Range【レンジ】オブジェクトで指定します。シートを指定した場合は指定したシートの右隣りのシートが参照されます。セルを指定した場合は指定したセルの右隣りのセルが参照されます。

※ Next【ネクスト】プロパティは参照するだけなので選択する場合は、Select【セレクト】メソッドやActivate【アクティベイト】 メソッドなどを使用して選択します。

※ 基準がセルの場合、セル範囲を指定してもセル範囲の左上隅のセルの右隣りの単一セルのみ参照されます。

※ 右隣りが参照できない状態、例えば、右隣りにシートが無い場合や最終列のセルを基準にした場合はNothing【ナッシング】が返りエラーになります。


右隣りにシートがあるかわからない場合の判定をするコード

Sub ネクスト()
If Worksheets("sheet1").Next Is Nothing Then
MsgBox "右側にシートはありません。"
Else
Worksheets("sheet1").Next.Select
End If
End Sub

その他のコード例「データの2つの項目列を入れ替える方法」もご覧ください。

以上で、Previous【プリビアス】プロパティとNext【ネクスト】 プロパティについての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告