엑셀 VBA에서 Sheet 개체는 워크시트(Worksheet) 또는 차트 시트(Chart) 를 나타내는 개체입니다.
워크시트 내의 셀을 조작하려면 반드시 Sheet 개체를 통해 접근해야 합니다.
1. Sheet 개체 접근 방법
✅ 특정 시트를 선택하는 방법
Sheets("Sheet1").Select ' "Sheet1" 선택
또는
Worksheets("Sheet1").Select ' Worksheets도 같은 의미
|
📌 Sheets는 모든 시트(워크시트 + 차트 시트 포함) 에 접근
📌 Worksheets는 워크시트만 접근
✅ 시트 개체를 변수에 저장
Dim ws As Worksheet
Set ws = Sheets("Sheet1")
ws.Range("A1").Value = "Hello" ' Sheet1의 A1 셀에 값 입력
|
2. Sheet 개체의 주요 속성 (Properties)
속성
|
설명
|
예제
|
Name
|
시트 이름 반환 또는 변경
|
Sheets(1).Name = "매출표"
|
Index
|
시트의 순서 번호 반환
|
MsgBox Sheets("Sheet1").Index
|
Visible
|
시트 숨기기 또는 표시
|
Sheets("Sheet1").Visible = xlSheetHidden
|
Cells
|
특정 셀 접근
|
Sheets("Sheet1").Cells(1,1).Value = "A1"
|
Range
|
특정 범위 접근
|
Sheets("Sheet1").Range("A1:B2").Value = 100
|
UsedRange
|
사용된 범위
|
MsgBox Sheets("Sheet1").UsedRange.Address
|
Rows
|
행 개체 접근
|
Sheets("Sheet1").Rows(2).Delete
|
Columns
|
열 개체 접근
|
Sheets("Sheet1").Columns("B").AutoFit
|
3. Sheet 개체의 주요 메서드 (Methods)
메서드
|
설명
|
예제
|
Select
|
시트 선택
|
Sheets("Sheet1").Select
|
Copy
|
시트 복사
|
Sheets("Sheet1").Copy After:=Sheets(2)
|
Delete
|
시트 삭제
|
Sheets("Sheet1").Delete
|
Move
|
시트 이동
|
Sheets("Sheet1").Move Before:=Sheets(2)
|
Activate
|
시트 활성화
|
Sheets("Sheet1").Activate
|
4. Sheet 개체 활용 예제
📌 1) 현재 시트의 이름 변경하기
Sub 시트이름_변경()
ActiveSheet.Name = "새로운이름"
End Sub
|
📌 2) 시트 추가하기
Sub 시트_추가()
Sheets.Add After:=Sheets(Sheets.Count) ' 마지막 시트 뒤에 새 시트 추가
ActiveSheet.Name = "새로운 시트"
End Sub
|
📌 3) 특정 시트 복사하기
Sub 시트_복사()
Sheets("Sheet1").Copy After:=Sheets("Sheet2") ' Sheet1을 Sheet2 뒤에 복사
End Sub
|
📌 4) 특정 시트 삭제하기
Sub 시트_삭제()
Application.DisplayAlerts = False ' 삭제 확인창 안 띄움
Sheets("Sheet1").Delete
Application.DisplayAlerts = True ' 다시 알림 활성화
End Sub
|
📌 5) 특정 시트 숨기기 / 표시하기
Sub 시트_숨기기_표시()
Sheets("Sheet1").Visible = xlSheetHidden ' 숨김 (사용자가 다시 보이게 할 수 있음)
Sheets("Sheet1").Visible = xlSheetVeryHidden ' 완전 숨김 (VBA에서만 다시 표시 가능)
Sheets("Sheet1").Visible = xlSheetVisible ' 다시 표시
End Sub
|
📌 6) 모든 시트 목록 가져오기
Sub 시트_목록_출력()
Dim ws As Worksheet
For Each ws In Sheets
Debug.Print ws.Name ' 즉, Ctrl + G (즉시 실행 창)에서 확인 가능
Next ws
End Sub
|
📌 7) 현재 파일에서 마지막 시트 선택하기
Sub 마지막_시트_선택()
Sheets(Sheets.Count).Select
End Sub
|
📌 8) 특정 시트가 존재하는지 확인 후 실행
Function 시트_존재여부(시트이름 As String) As Boolean
Dim ws As Worksheet
On Error Resume Next
Set ws = Sheets(시트이름)
If Not ws Is Nothing Then
시트_존재여부 = True
Else
시트_존재여부 = False
End If
On Error GoTo 0
End Function
Sub 시트_존재_체크()
If 시트_존재여부("Sheet1") Then
MsgBox "Sheet1이 존재합니다."
Else
MsgBox "Sheet1이 없습니다."
End If
End Sub
|
📝 정리
- Sheets("Sheet1") 또는 Worksheets("Sheet1")으로 특정 시트 접근
- .Name, .Index, .Visible, .Cells, .Range 속성을 통해 시트 정보 및 셀 조작 가능
- .Select, .Delete, .Copy, .Move, .Activate 등 메서드를 사용해 시트 관리 가능
- VBA를 활용해 시트 추가, 삭제, 복사, 숨기기, 존재 여부 확인 등 자동화 가능
🔥 Sheet 개체를 활용하면 엑셀 자동화 작업을 더욱 효율적으로 만들 수 있습니다! 🚀