EXCEL VBA

[ 엑셀 VBA ] 시트 추가하는 여러가지 방법, 엑셀 시트 추가하기

카루루1007 2024. 9. 5. 23:20
728x90
반응형

 맨 마지막에 시트 추가하기

 

시트가 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

 

728x90

 활성화된 시트의 앞 또는 뒤에

 

활성화된 시트를 기준으로 해당 시트의 앞 또는 뒤에 추가하는 코드입니다.

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입니다.

직접 생성해보지는 않았지만.....

 

시트의 삭제와 이동에 대해 더 궁금하시면 아래를 참고하시면 됩니다.

시트 삭제하는 여러가지 방법, 엑셀 시트 삭제하기

시트 이동하는 여러가지 방법, 시트 이동하기

 

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

728x90
반응형