📋
DeleteSheet
シート管理指定したシートを削除する
🎬 デモGIF準備中
📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 実行するとシート名を選択するダイアログが表示され、確認後に削除される
💻 VBAコード
' DeleteSheet
' -----------------
' Macro Name: DeleteSheet
' Description: 指定したシートを削除する
' Parameters: なし
' Returns: なし
' Usage: 実行するとシート名を選択するダイアログが表示され、確認後に削除される
' -----------------
Sub DeleteSheet()
Dim ws As Worksheet
Dim sheetName As String
Dim sheetList As String
Dim i As Long
On Error GoTo ErrorHandler
If Worksheets.Count = 1 Then
MsgBox "最後のシートは削除できません。", vbExclamation
Exit Sub
End If
For i = 1 To Worksheets.Count
sheetList = sheetList & i & ": " & Worksheets(i).Name & vbCrLf
Next i
sheetName = InputBox("削除するシート番号を入力してください:" & vbCrLf & vbCrLf & sheetList, "シート削除")
If sheetName = "" Then
Exit Sub
End If
If IsNumeric(sheetName) Then
i = CLng(sheetName)
If i >= 1 And i <= Worksheets.Count Then
Set ws = Worksheets(i)
Else
MsgBox "無効な番号です。", vbExclamation
Exit Sub
End If
Else
On Error Resume Next
Set ws = Worksheets(sheetName)
On Error GoTo ErrorHandler
If ws Is Nothing Then
MsgBox "「" & sheetName & "」は存在しません。", vbExclamation
Exit Sub
End If
End If
If MsgBox("「" & ws.Name & "」を削除しますか?" & vbCrLf & "この操作は元に戻せません。", vbYesNo + vbExclamation) = vbYes Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
MsgBox "シートを削除しました。", vbInformation
End If
Exit Sub
ErrorHandler:
Application.DisplayAlerts = True
MsgBox "エラーが発生しました: " & Err.Description, vbCritical
End Sub