【VBA】指定したシートより、左側にあるシートを削除する

VBAで
 ・指定したシートより、左側にあるシートを削除
できます!

PR

VBAコード

ここでは例として
 ・シート「売上」より、左側にあるシートを削除
します。
※シート「temp1」と「temp2」を削除します。

シート「売上」より左側にあるシートは「temp1」と「temp2」
シート「売上」より左側にあるシートは「temp1」と「temp2
Option Explicit

Sub sample()
    
    Dim wb As Workbook
    Dim sheetCount As Long
    
    '対象のブックを指定
    Set wb = ThisWorkbook
    
    'シート数分繰り返し ※右側のシートから左側のシートへ向かって繰り返す
    For sheetCount = wb.Worksheets.count To 1 Step -1
        '売上シートのインデックス番号より小さいインデックス番号のシートを削除する
        '※つまり売上シートの左側にあるシートを削除する
        If sheetCount < wb.Worksheets("売上").Index Then
            Application.DisplayAlerts = False
            wb.Worksheets(sheetCount).Delete
            Application.DisplayAlerts = True
        End If
    Next
    
    MsgBox ("売上シートより、左側にあるシートを削除しました。")

End Sub

シート数繰り返し処理をして、指定したシートより左側にある場合はシートを削除します(12~20行目)。
※今回は「からへ向かって繰り返す」ようにします。
※シートの削除によりシートのインデックス
番号が変わっていくため、「からへ向かって繰り返す」だと上手くいかないため。

PR

実行結果

指定したシートより、左側にあるシートを削除できました。
※シート「売上」より、左側にあるシートを削除できました。
※シート「temp1」と「temp2」を削除できました。

実行結果①
実行結果②
実行結果②
PR

参考

上記のVBAコードは、以下の記事を参考にして作成しました。

●シートの数だけ繰り返し処理を行う


●シートを削除する

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