맨 마지막에 시트 추가하기
시트가 5개 있을 경우 5번째 시트의 다음에 시트를 추가합니다.
Sub 시트추가()
Set NewSheet = Worksheets.Add(after:=Worksheets(Worksheets.Count))
NewSheet.Name = "새로운 시트"
End Sub
위 코드를 실행하면 맨 마지막에 시트가 하나 추가됩니다.
1. Set NewSheet
NewSheet라는 변수를 정의하고, 추가된 새로운 시트 객체를 저장합니다.
2. Worksheets.add()
Worksheets는 현재 활성회된 엑셀 파일 내의 모든 시트를 담고 있습니다.
add() 함수는 새 시트를 추가하라는 명령입니다.
3. after:=
after은 다음을 뜻합니다.
= 뒤에 위치를 지정합니다.
지정한 위치 다음에 시트를 추가, 삭제 등의 조작을 합니다.
4. Worksheet(Worksheets.Count)
Worksheets.Count는 현재 엑셀 파일에 있는 모든 시트의 개수를 나타냅니다.
즉, Worksheet(Worksheets.Count)를 하면 현재 파일의 맨 마지막 시트를 나타냅니다.
5. Worksheets.Add(after:=Worksheets(Worksheets.Count))
결국 위 코드는 현재 파일에 있는 맨 마지막 시트의 다음에 시트를 추가하라는 의미가 됩니다.
맨 앞에 추가하기
아래 코드는 맨 앞에 시트를 추가하는 코드입니다.
Sub 시트추가()
Set NewSheet = Worksheets.Add(before:=Worksheets(1))
NewSheet.Name = "맨 앞에 추가"
End Sub
add 함수 안쪽만 살펴보면
첫번째 시트 이전에 즉, 첫 번째 시트 앞에 시트를 추가하므로
맨 앞에 시트가 추가됩니다.
특정 시트 앞에 추가하기
sheet1 이라는 이름을 가진 시트의 앞에 시트를 추가하는 코드입니다.
시트 이름의 대소문자는 구분하지 않습니다.
Sub 시트추가()
Set NewSheet = Worksheets.Add(before:=Worksheets("sheet1"))
NewSheet.Name = "sheet1 앞에"
End Sub
특정 시트 뒤에 추가하기
sheet1이라는 이름을 가진 시트의 뒤에 시트를 추가하는 코드입니다.
Sub 시트추가()
Set NewSheet = Worksheets.Add(after:=Worksheets("Sheet1"))
NewSheet.Name = "sheet1 뒤에"
End Sub
n번째 시트 앞 또는 뒤에 추가하기
특정 순번의 시트 앞/뒤에 추가할 수도 있습니다.
Sub 시트추가()
Set NewSheet = Worksheets.Add(after:=Worksheets(3))
NewSheet.Name = "3번시트 뒤에"
End Sub
Sub 시트추가()
Set NewSheet = Worksheets.Add(before:=Worksheets(3))
NewSheet.Name = "3번시트 앞에"
End Sub
활성화된 시트의 앞 또는 뒤에
활성화된 시트를 기준으로 해당 시트의 앞 또는 뒤에 추가하는 코드입니다.
Sub 시트추가()
Set NewSheet = Worksheets.Add(before:=ActiveSheet)
NewSheet.Name = "활성화된 시트 앞에"
End Sub
Sub 시트추가()
Set NewSheet = Worksheets.Add(after:=ActiveSheet)
NewSheet.Name = "활성화된 시트 뒤에"
End Sub
주의할 점
엑셀에서 생성 가능한 시트의 수는 255개입니다.
시트가 255개인데 추가로 생성하려 하면 에러가 발생할 것입니다.
이럴 경우를 대비해 시트의 숫자가 255개 미만인 경우에만 시트를 생성하게 해야 합니다.
Sub 시트추가()
Dim sheetCount As Integer
sheetCount = ThisWorkbook.Worksheets.Count
If sheetCount < 255 Then
Set NewSheet = Worksheets.Add(After:=Worksheets(Worksheets.Count))
NewSheet.Name = "새로운 시트"
MsgBox "시트가 추가되었습니다.", vbInformation
Else
MsgBox "255개의 시트를 이미 생성했습니다.", vbWarning
End If
End Sub
If 문을 통해 시트의 숫자가 255개 미만인 경우에만 시트를 생성할 수 있게 처리합니다.
참 고 사 항
엑셀에서 생성 가능한 시트의 숫자 확인 방법
엑셀에서
파일 → 옵션 → 일반으로 들어가시면
아래 그림과 같이 포함할 시트 수를 확인할 수 있습니다.
이곳에 입력 가능한 엑셀의 시트 숫자의 최댓값은 255입니다.
직접 생성해보지는 않았지만.....
시트의 삭제와 이동에 대해 더 궁금하시면 아래를 참고하시면 됩니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
[ 엑셀 VBA ] 시트 이동하는 여러가지 방법, 시트 이동하기 (0) | 2024.09.06 |
---|---|
[ 엑셀 VBA ] 시트 삭제하는 여러가지 방법, 엑셀 시트 삭제하기 (0) | 2024.09.06 |
[ 엑셀 VBA ] 엑셀 VBA의 Err 객체 : VBA의 에러를 다루기 위한 가이드 (2) | 2024.09.04 |
[ 엑셀 VBA ] 엑셀 VBA의 오류 및 에러 처리 방법 (0) | 2024.09.04 |
[ 엑셀 VBA ] VBA를 공부하기 위한 최고의 메뉴얼, 객체 브라우저(Object Browser) 사용하기 (3) | 2024.09.04 |