VBA 루틴 – 워크시트 추가하기와 워크시트 이름 지정하기

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 4월 28, 2023

이 튜토리얼에서는 VBA에서 워크시트를 추가/삽입하는 방법에 대해 설명합니다.

시트 추가하기

다음의 간단한 매크로는 활성시트 앞에 새로운 시트를 추가합니다:

Sub Add ()
    Sheets.Add
End Sub

시트를 삽입하면 새로운 시트가 ActiveSheet가 됩니다. 새 시트에서 작업할때 ActiveSheet 객체를 사용할 수 있습니다(튜토리얼의 마지막 부분에서 새 시트를 변수에 직접 할당하는 방법을 보여 드리겠습니다).

ActiveSheet.Name = "NewSheet"

새 시트를 추가하면서 이름 지정하기

시트 이름을 정의하여 새 시트를 만들 수 있습니다:

Sheets.Add.Name = "NewSheet"

셀 값으로 시트의 이름을 지정하여 새 시트 만들기

셀 값을 사용하여 새 시트의 이름을 지정할 수 있습니다:

Sheets.Add.Name = range("a3").value

다른 시트 앞/뒤에 시트 추가하기

새 시트가 삽입될 위치를 선택할 수도 있습니다. After 또는 Before 속성을 사용하여 통합 문서의 특정 위치에 시트를 삽입할 수 있습니다.

다른 시트 뒤에 시트 삽입하기

아래 코드는 다른 시트 뒤에 새 시트를 삽입합니다:

Sheets.Add After:=Sheets("Input")

아래 코드는 다른 시트 뒤에 새 시트를 삽입하고 시트 이름을 “NewSheet”로 지정합니다:

Sheets.Add(After:=Sheets("Input")).Name = "NewSheet"

위의 두 번째 예제에서는 추가 괄호가 필요합니다(첫 번째 예제에서 두 번째 괄호를 추가하면 오류가 발생합니다).

Before 속성을 사용한 예제는 다음과 같습니다:

Sheets.Add(Before:=Sheets("Input")).Name = "NewSheet"

이 예제에서는 새 시트 위치의 기준이 되는 시트의 이름을 사용하였습니다. 통합 문서에서 가장 첫 부분이나 마지막 부분에 새 시트를 삽입할 수 있도록 시트의 인덱스 번호를 사용하는 경우도 많이 있습니다:

통합 문서 끝에 시트 추가하기

통합 문서의 끝에 시트를 추가하려면 아래 코드를 참고해 주세요:

Sheets.Add After:=Sheets(Sheets.Count)

통합 문서의 첫 부분에 시트 추가하기:

통합 문서의 첫 부분에 시트를 추가하려면 다음과 같이 입력합니다:

Sheets.Add(Before:=Sheets(1)).Name = "FirstSheet"

시트를 추가하고 변수에 할당하기

이 코드는 새 시트를 추가하고 변수에 할당합니다:

Dim ws As Worksheet
Set ws = Sheets.Add

위와같이 선언한 이후 ‘ws’ 변수를 사용하여 새 시트를 참조할 수 있습니다:

ws.name = "VarSheet"

시트 추가하기 예제

시트가 없는 경우 시트 만들기

추가하려고 하는 시트가 존재하지 않는 경우에만 시트를 만들고 싶을 수 있습니다.

 

이름 목록을 참조하여 워크시트 만들기

다음 코드는 현재 통합 문서 내에서 단일 열의 각 셀의 값을 확인합니다. 그런다음 다른 함수를 호출하여 각 셀 값과 시트의 이름이 동일한 시트가 존재하는지 확인하고, 존재한다면 시트를 만들지 않습니다.

Private Sub CommandButton1_Click()

Call CreateWorksheets(Sheets("Sheet2").Range("A1:a10"))

End Sub

Sub CreateWorksheets(Names_Of_Sheets As Range)
Dim No_Of_Sheets_to_be_Added As Integer
Dim Sheet_Name As String
Dim i As Integer

No_Of_Sheets_to_be_Added = Names_Of_Sheets.Rows.Count

For i = 1 To No_Of_Sheets_to_be_Added

Sheet_Name = Names_Of_Sheets.Cells(i, 1).Value

'시트가 존재하지 않고 이름의 글자수가 0보다 긴 경우에만 시트를 추가합니다.

If (Sheet_Exists(Sheet_Name) = False) And (Sheet_Name <> "") Then
    Worksheets.Add().Name = Sheet_Name
End If

Next i

End Sub
Function Sheet_Exists(WorkSheet_Name As String) As Boolean
Dim Work_sheet As Worksheet

Sheet_Exists = False

For Each Work_sheet In ThisWorkbook.Worksheets

    If Work_sheet.Name = WorkSheet_Name Then
        Sheet_Exists = True
    End If

Next

End Function

Sheet2의 A1:A30 셀에 다음과 같은 텍스트가 있습니다:

코드를 실행하면 아래와 같이 시트들이 생성됩니다:

“강아지”가 셀 범위에는 두번 있지만 해당 이름의 시트는 하나만 생성됩니다.

이 튜토리얼의 .XLS 파일을 다운로드하려면 여기를 클릭하세요.

간편한 VBA 코딩

온라인에서 VBA 코드를 더 이상 검색하지 않아도 됩니다. 초보자도 최소한의 코딩 지식으로 프로시저를 처음부터 코딩할 수 있습니다. 코드를 빠르게 작성하고 싶으시다면 모든 사용자를 위한 VBA 코드 작성기인 AutoMacro에 대해 자세히 알아보세요!

alt text

 

자세히 알아보기!


<<VBA 예제로 돌아가기

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기

AI in the VBA Editor!

AutoMacro is the ultimate VBA add-in.

AI, Generators, UI Builders, Code Library, and More!

Learn More

AutoMacro: AI in the VBA Editor!

Learn More