VBA 시트 이름 가져오기/시트 이름 바꾸기
In this Article
이 튜토리얼에서는 VBA에서 시트 이름을 다루는 방법에 대해 설명하겠습니다.
시트 이름 가져오기
시트 이름은 시트 또는 워크시트 개체의 이름 속성에 저장됩니다. 시트 이름은 Excel의 하단에 표시되는 “탭” 이름입니다:
활성 시트 이름 가져오기
아래의 코드를 실행하면 메시지 상자에 활성시트이름이 표시됩니다:
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
참고: 시트 이름이 이미 존재하는 경우 오류를 방지하기 위해 오류 처리를 추가했습니다.