Worksheet 개체

워크시트(Sheet)가 존재하는지 확인하는 방법

노만e 2025. 3. 12. 06:41

✅ 1. 특정 시트가 존재하는지 확인하는 함수

Function IsSheet(시트이름 As String) As Boolean
Dim 시트 As Worksheet
On Error Resume Next
Set 시트 = ThisWorkbook.Sheets(시트이름)
On Error GoTo 0
IsSheet = Not 시트 Is Nothing
End Function

📌 시트가 존재하면 True 반환, 존재하지 않으면 False 반환

📌 오류 발생을 방지하기 위해 On Error Resume Next 사용


✅ 2. 특정 시트 존재 여부 확인 후 실행

Sub 시트존재여부확인()
Dim 시트이름 As String
시트이름 = "Sheet1"
If IsSheet(시트이름) Then
MsgBox 시트이름 & " 시트가 존재합니다!"
Else
MsgBox 시트이름 & " 시트가 존재하지 않습니다!"
End If
End Sub

📌 "Sheet1" 시트가 존재하면 메시지 출력, 없으면 다른 메시지 출력


✅ 3. 특정 시트가 없으면 생성

Sub 시트존재여부후_자동생성()
Dim 시트이름 As String
시트이름 = "NewSheet"
If Not IsSheet(시트이름) Then
ThisWorkbook.Sheets.Add(After:=Sheets(Sheets.Count)).Name = 시트이름
MsgBox 시트이름 & " 시트가 생성되었습니다!"
Else
MsgBox 시트이름 & " 시트가 이미 존재합니다!"
End If
End Sub

📌 해당 시트가 없으면 새 시트를 생성하고, 이미 존재하면 메시지 출력


✅ 4. 특정 시트 삭제 (존재 여부 확인 후)

Sub 시트삭제()
Dim 시트이름 As String
시트이름 = "Sheet1"
If IsSheet(시트이름) Then
Application.DisplayAlerts = False
ThisWorkbook.Sheets(시트이름).Delete
Application.DisplayAlerts = True
MsgBox 시트이름 & " 시트가 삭제되었습니다!"
Else
MsgBox 시트이름 & " 시트가 존재하지 않습니다!"
End If
End Sub

📌 시트가 존재할 경우 삭제 후 경고 메시지 비활성화(DisplayAlerts = False)


✅ 5. 모든 시트 목록 가져오기

Sub 모든시트출력()
Dim 시트 As Worksheet
Dim 시트목록 As String
For Each 시트 In ThisWorkbook.Sheets
시트목록 = 시트목록 & 시트.Name & vbNewLine
Next 시트
MsgBox "현재 존재하는 시트 목록:" & vbNewLine & 시트목록
End Sub

📌 현재 워크북에 존재하는 모든 시트 이름을 출력


📌 정리

기능
VBA 코드
시트 존재 여부 확인 함수
IsSheet(시트이름)
시트가 존재하면 메시지 출력
If IsSheet("Sheet1") Then MsgBox "존재함"
시트가 없으면 자동 생성
If Not IsSheet("NewSheet") Then Sheets.Add.Name = "NewSheet"
시트 삭제 (존재 시)
If IsSheet("Sheet1") Then Sheets("Sheet1").Delete
모든 시트 목록 출력
For Each ws In Sheets: MsgBox ws.Name: Next ws

🔥 VBA에서 IsSheet 함수를 직접 정의하여 원하는 시트가 존재하는지 쉽게 확인할 수 있습니다! 🚀