![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBAで
・指定したシートより、左側にあるシートを削除
できます!
VBAコード
ここでは例として
・シート「売上」より、左側にあるシートを削除
します。
※シート「temp1」と「temp2」を削除します。
![シート「売上」より左側にあるシートは「temp1」と「temp2」](https://excel-vba.work/wp-content/uploads/2024/03/vba_sheet_delete_left_001.png)
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
実行結果
指定したシートより、左側にあるシートを削除できました。
※シート「売上」より、左側にあるシートを削除できました。
※シート「temp1」と「temp2」を削除できました。
![](https://excel-vba.work/wp-content/uploads/2024/03/vba_sheet_delete_left_004.png)
![実行結果②](https://excel-vba.work/wp-content/uploads/2024/03/vba_sheet_delete_left_003.png)
参考
上記のVBAコードは、以下の記事を参考にして作成しました。
●シートの数だけ繰り返し処理を行う
●シートを削除する