VBA 에는 워크시트를 제어할 수 있는 개체를 제공하고 있습니다. 이 개체를 이용하면 시트를 추가하거나 기존에 존재하던 이름을 변경할 수 있습니다. 또한 시트를 삭제하거나 위치를 바꿀 수도 있습니다. 샘플 예제를 통해서 어떻게 구현하는지 알아 보겠습니다.
◎ 현재 시트명을 알아 오는 방법 |
▼ 현재 활성화된 시트명을 가져오는 방법입니다. ActiveSheet 는 활성화된 시트 개체 입니다. 개체에서 Name 속성값이 활성화된 시트 개체의 이름을 나타냅니다. 다른 특정 시트를 활성화 시켜서 이름을 알고 싶다면 Worksheets("Sheet2").Activate 로 활성화하고 나서 값을 가져옵니다.
Sub Sheet_Click()
MsgBox "현재 활성화된 시트명은 " & ActiveSheet.Name & " 입니다."End Sub
◎ 2. Sheet 추가하는 방법 |
▼ 다음은 새로운 시트를 추가하는 방법입니다. 시트를 추가하기 위해 Worksheets 개체를 사용합니다. Add 함수를 이용하면 시츠를 추가할 수 있습니다. 그런데 인수로 아무것도 넘기지 않으면 그림처럼 활성화된 시트 앞쪽에 추가가 됩니다. 보통 뒤에서 차례대로 추가하고 싶겠죠.
Sub Sheet_Click()
Worksheets.Add
End Sub
▼ 현재 활성화된 시트 뒤에서부터 차례대로 추가하고 싶다면 Add 함수에 after 인수 변수를 붙이고 값을 넣어야 합니다. after:=Worksheets(1) 는 현재 활성화된 시트 바로 붙이겠다는 의미입니다. Count 는 추가하고 싶은 시트의 개수를 나타냅니다.
Sub Sheet_Click()
Worksheets.Add after:=Worksheets(1), Count:=1
End Sub
◎ 3. 시트 활성화와 시트 이름 변경하는 방법 |
▼ 기존에 추가되어 있던 시트명을 변경하는 방법입니다. Worksheets("Sheet2").Activate 에서 지정한 "Sheet2" 가 없으면 현재 활성화된 시트명을 바꾸게 됩니다. "Sheet2" 의 시트명을 바꾸기 위해 Activate 를 사용해서 활성화 시킨 뒤 ActiveSheet 의 Name 속성에 바꿀 이름을 넣었습니다.
Sub Sheet_Click()
Worksheets("Sheet2").Activate
ActiveSheet.Name = "ChangName"
End Sub
◎ 4. 시트 이동과 복사 삭제 |
▼ 시트의 이동과 복사하는 방법입니다. 이동은 Move 함수를 사용했으며, after 인수로 어느 워크시트 뒤로 이동할지 결정합니다. 아래 소스는 Sheet1 을 Sheet2 뒤로 이동합니다. 복사는 Copy 함수를 사용했으며 after 인수로 어디에 위치할지 정합니다. 그리고 복사한 시트의 이름은 뒤에 (2) 가 붙습니다.
Sub Sheet_Click()
Worksheets("Sheet1").Move after:=Worksheets("Sheet2")
Worksheets("Sheet1").Copy after:=Worksheets("Sheet2")
End Sub
▼ 다음은 시트를 삭제하는 방법입니다. 시트를 삭제할 때 Delete 함수를 이용하는데 실행하자 마자 삭제 여부를 묻는 경고 메시지가 뜹니다. 진짜 삭제할 것인지 묻는 것입니다. 매번 삭제할 때 마다 사용자 개입이 필요하다면 매크로가 아니겠죠. 알림메시지를 안 뜨도록 설정하는 방법은 Application.DisplayAlerts = False 입력하는 것입니다. 앞쪽에 False 로 바꾼 후 Delete 를 이용해 시트를 삭제합니다. 그리고 엑셀 전체에 적용되는 설정값이기 때문에 원상 복구 해야 겠죠. Application.DisplayAlerts = True 를 이용해서 다시 메시지가 뜰 수 있도록 설정해 놓습니다.
Sub Sheet_Click()
Application.DisplayAlerts = False
Worksheets("Sheet1 (2)").Delete
Application.DisplayAlerts = True
End Sub
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 함수 CStr 데이터를 문자열로 변환하기 (1) | 2024.01.02 |
---|---|
엑셀 VBA 날짜 여부 확인 함수 IsDate 사용하기 (1) | 2024.01.02 |
엑셀 VBA 문자열 자르기, LEFT RIGHT 함수를 이용해 문자열 추출하는 방법 (0) | 2023.12.23 |
엑셀 VBA 체크 박스 CheckBox 컨트롤 사용하기 (0) | 2023.12.20 |
엑셀 VBA 날짜 차이를 계산하는 DateDiff 함수 사용하기 (0) | 2023.12.09 |
엑셀 VBA 텍스트 내용을 읽어 와서 시트에 분리해서 넣는 방법 (3) | 2023.11.30 |
엑셀 VBA 함수 Time 사용해서 현재 시간 표시하기 (0) | 2023.11.28 |
엑셀 VBA 함수 Replace 문자열 내 문자 또는 문자열 대체하기 (0) | 2023.11.27 |