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 코드 예시로 돌아가기