【VBA】前後のシートに順番に切り替える

Excelで作業中に「今いるシートの前(または次)のシート」に切り替えたい場合、VBAを使えばワンタッチで実現できます。特に複数シートを頻繁に移動する作業で効率化に役立ちます。

本記事では、現在のシートから前後のシートへ順番に切り替える方法をサンプルコード付きで解説します。


1. 基本的な考え方

Excelのシートには「インデックス番号(順番)」があります。

  • Worksheets(1) … 先頭のシート
  • Worksheets(Worksheets.Count) … 最後のシート

現在のシートのインデックスを取得し、それを基準に +1 または -1 することで前後のシートを取得できます。


2. 使用例:次のシートに移動する

現在アクティブなシートの 次のシート をアクティブにする例です。

Sub ActivateNextSheet()
Dim idx As Long
idx = ActiveSheet.Index '現在のシート番号

If idx < Worksheets.Count Then
Worksheets(idx + 1).Activate
Else
MsgBox "これ以上、次のシートはありません。"
End If
End Sub

3. 使用例:前のシートに移動する

現在アクティブなシートの 前のシート をアクティブにする例です。

Sub ActivatePreviousSheet()
Dim idx As Long
idx = ActiveSheet.Index '現在のシート番号

If idx > 1 Then
Worksheets(idx - 1).Activate
Else
MsgBox "これ以上、前のシートはありません。"
End If
End Sub

4. 先頭や最後に到達した場合のループ移動

前後のシートに移動するとき、先頭や最後のシートに到達したら「循環」させたい場合は以下のように書きます。

Sub ActivateNextSheetLoop()
Dim idx As Long
idx = ActiveSheet.Index

If idx = Worksheets.Count Then
Worksheets(1).Activate '最後の次は先頭
Else
Worksheets(idx + 1).Activate
End If
End Sub

5. まとめ

  • ActiveSheet.Index を基準に +1 / -1 で前後のシートを取得
  • シートの最初・最後を超えないよう条件分岐が必要
  • 循環移動も簡単に実装可能

これで、前後のシート移動をVBAで自動化できます。

コメント

タイトルとURLをコピーしました