VBA 시트 이름 가져오기/시트 이름 바꾸기

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 3월 8, 2023

이 튜토리얼에서는 VBA에서 시트 이름을 다루는 방법에 대해 설명하겠습니다.

시트 이름 가져오기

시트 이름은 시트 또는 워크시트 개체의 이름 속성에 저장됩니다. 시트 이름은 Excel의 하단에 표시되는 “탭” 이름입니다:

vba sheet tab name

활성 시트 이름 가져오기

아래의 코드를 실행하면 메시지 상자에 활성시트이름이 표시됩니다:

MsgBox ActiveSheet.Name

인덱스 번호로 시트 이름 가져오기

아래 코드를 실행하면 메시지박스에 첫 번째 워크시트 이름을 표시합니다:

MsgBox Sheets(1).Name

아래 코드를 실행하면 통합 문서의 마지막 워크시트 이름을 표시합니다:

MsgBox Sheets(Sheets.Count).Name

코드명으로 시트 이름 가져오기

VBA 편집기에는 시트의 ‘코드 이름’을 변경하는 옵션이 있습니다. 코드 이름은 Excel 사용자에게는 표시되지 않으며 VBA 편집기에서만 볼 수 있습니다:

VBA에서 Sheets로 작업할 때 일반적인 탭 이름을 참조할 수 있습니다:

Sheets("탭이름").Activate

또는 VBA 코드명을 참조할 수 있습니다:

코드명.Activate

시트 탭 이름이 변경될 경우를 고려하면 코드 이름을 참조하는 것이 바람직합니다. Excel 사용자가 시트 이름 변경을 할수 있도록 허용하는 경우 시트 탭 이름 불일치로 인해 오류가 발생할 수 있습니다. 이를 방지하려면 VBA에서 코드명을 참조해야 합니다. 시트 코드 이름은 여기에 자세히 설명되어 있습니다.

VBA 코드명을 사용하여 시트 이름을 가져오려면 다음과 같이 하세요:

MsgBox 코드명.Name

시트 이름 바꾸기

시트 또는 워크시트 개체의 이름 속성을 조정하여 시트 이름을 바꿀 수 있습니다.

활성시트 이름 바꾸기

ActiveSheet.Name = "새로운이름"

시트 이름으로 불러와서 해당 시트 이름 바꾸기

Sheets("예전시트").Name = "새로운이름"

시트 인덱스 번호로 시트 이름 바꾸기

여기에서는 1을 사용하여 통합 문서의 첫 번째 시트의 이름을 바꾸겠습니다.

Sheets(1).Name = "새로운이름"

코드명으로 시트 이름 바꾸기

이 코드는 시트의 VBA 코드 이름(위에서 설명한)을 사용하여 시트의 이름을 바꿉니다:

코드명.Name = "새로운이름"

시트 이름이 존재하는지 확인하기

특정 이름의 시트가 이미 존재하는지 확인하는 함수를 만들었습니다.

'시트에 범위값이 있는지 테스트합니다.
'시트가 존재하는지 확인하려면 범위값을 비워둡니다.
'입력값:
' WhatSheet - 시트이름 (예 "Sheet1")
' WhatRange (선택사항, 기본값 = "A1") - 범위의 이름 (예 "A1")
Function RangeExists(WhatSheet As String, Optional ByVal WhatRange As String = "A1") As Boolean
    Dim test As Range
    On Error Resume Next
    Set test = ActiveWorkbook.Sheets(WhatSheet).Range(WhatRange)
    RangeExists = Err.Number = 0
    On Error GoTo 0
End Function

이 함수는 시트가 존재하면 TRUE를 반환하고, 존재하지 않으면 FALSE를 반환합니다.

함수는 다음과 같이 사용합니다:
Sub Test_SheetExists()
    MsgBox RangeExists("탭이름")
End Sub

시트 복사 및 이름 바꾸기

이 예제는 시트 복사 문서에서 가져온 것입니다.

시트를 복사하여 붙여넣으면 새로 만든 시트가 ActiveSheet가 됩니다. 따라서 복사한 시트의 이름을 바꾸려면 ActiveSheet.Name을 사용하면 됩니다:

Sub CopySheetRename2()

    Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
    On Error Resume Next
    ActiveSheet.Name = "LastSheet"
    On Error GoTo 0

End Sub

참고: 시트 이름이 이미 존재하는 경우 오류를 방지하기 위해 오류 처리를 추가했습니다.

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