본문 바로가기
Worksheet object

시트 삭제하기

2023. 9. 5.

Worksheet.Delete method

개체를 삭제합니다.

Syntax

expression.Delete

expression : Worksheet 개체를 나타내는 변수입니다.

반환 값
Boolean

비고

워크시트 개체를 삭제할 때 이 메서드는 사용자에게 삭제를 확인하라는 대화 상자를 표시합니다. 이 대화 상자는 기본적으로 표시됩니다. 워크시트 개체에서 Delete 메서드를 호출하면 사용자가 대화 상자에서 취소를 선택한 경우 False, 삭제를 선택한 경우 True인 부울 값을 반환합니다.

대화 상자를 표시하지 않고 워크시트를 삭제하려면 Application.DisplayAlerts 속성을 False로 설정합니다.

예제

다음 코드는 'Sheet3'을 삭제합니다. 삭제할 시트가 없으면 에러가 발생합니다.

Sub DeleteWorksheet()
    Sheets("Sheet3").Delete
End Sub

On Error Resume Next문을 사용하면 삭제할 시트가 없어도 에러없이 실행됩니다.

Sub DeleteWorksheet()
    On Error Resume Next ' 오류 발생 시 다음 줄로 이동
    Sheets("Sheet3").Delete  ' 만약 Sheet3이 없으면, 에러없이 다음 줄로 이동
    On Error GoTo 0 ' 기본적인 VBA 에러 핸들링으로 돌아감
End Sub

Application.DisplayAlerts 속성을 사용하지 않았으므로 다음과 같이 경고 메시지가 뜹니다.

다음 코드는 시트가 존재하는지 확인하고 존재할 경우 경고 메시지 없이 바로 삭제합니다.

Sub DeleteWorksheet()
    Dim wsName As String
    Dim ws As Worksheet
    
    ' 워크시트 이름 설정
    wsName = "Sheet3"
    
    ' 워크시트가 존재하는지 확인하는 함수 호출
    If WorksheetExists(wsName) Then
        Application.DisplayAlerts = False ' 경고 메세지 비활성화
        Sheets(wsName).Delete
        Application.DisplayAlerts = True ' 경고 메세지 다시 활성화
    Else
        MsgBox "워크시트를 찾을 수 없습니다."
    End If
End Sub

Function WorksheetExists(ByVal worksheetName As String) As Boolean
    Dim ws As Worksheet
    
    On Error Resume Next
    Set ws = ThisWorkbook.Worksheets(worksheetName)
    On Error GoTo 0
    
    WorksheetExists = Not ws Is Nothing
End Function



도움말 출처

Worksheet.Delete method (Excel)

Office VBA reference topic

learn.microsoft.com

'Worksheet object' 카테고리의 다른 글

Worksheet.ScrollArea 속성 - 스크롤 영역 제한하기  (0) 2023.09.06
Worksheet.Name속성  (0) 2023.09.06
Hyperlinks 속성  (0) 2023.09.03
Columns 속성  (0) 2023.09.03
CodeName 속성  (0) 2023.09.03