
안녕하세요. 춤추는초코칩입니다.
엑셀 파일에서 여러 시트 중 내가 원하는 시트로 이동하는 VBA를 만들어 보려고 합니다.
시트를 이동할 때 사용하는 method는 select 혹은 activate입니다.
엑셀시트가 1번시트, 2번시트, 3번시트가 있는 엑셀파일입니다.

select와 activate를 이용하여, 시트를 이동하는 vba를 만들어 보도록 하겠습니다.
'1번시트→ 2번시트→3번시트→1번시트→2번시트
Sub moveSheets()
Worksheets(2).Select
Worksheets("3번시트").Select
Worksheets(1).Activate
Worksheets("2번시트").Activate
End Sub

각각의 시트가 선택되는 것을 확인할 수 있습니다.
select는 시트를 선택하는 메서드로 복수의 시트를 선택할 수 있습니다.
'2번시트, 3번시트 선택
Sub moveSheets2()
Worksheets(Array(2, 3)).Select
End Sub

2번시트와 3번시트가 선택됩니다.
이 상태에서 activate를 실행해보겠습니다.
'2번시트→3번시트→1번시트
Sub moveSheets3()
Worksheets(Array(2, 3)).Select
Worksheets(2).Activate
Worksheets(3).Activate
Worksheets(1).Activate
End Sub

2번시트를 activate할 때에는 동작하지 않고, 3번시트를 activate할때에는 2번시트와 3번시트가 선택된 상태에서 activate되는 것을 확인 할 수 있습니다. 다음 1번시트를 activate할 때에는 1번시트만 activate됩니다.
이번에는 2번, 3번시트가 선택된 상태에서 각각의 시트를 select해보겠습니다.
'2번시트→3번시트→1번시트
Sub moveSheets4()
Worksheets(Array(2, 3)).Select
Worksheets(2).Select
Worksheets(3).Select
Worksheets(1).Select
End Sub

매번 새롭게 select되는 것을 확인할 수 있습니다.
한 개의 시트를 select하거나 activate할 때에는 두 개의 method가 크게 차이가 없지만 2개의 method를 혼합하여 사용할 때에는 의도치 않은 결과가 초래될 수 있으니 유의해야할 거 같습니다.
'엑셀VBA' 카테고리의 다른 글
[엑셀VBA] 사용자 정의 폼 사용 시, 시트 활성화 모달리스 modaless (0) | 2022.11.28 |
---|---|
[엑셀VBA] 체크박스(확인란) 사용하기 Checkbox (0) | 2022.11.27 |
[엑셀VBA] 리스트박스에 항목(목록) 추가하기 Listbox (0) | 2022.11.26 |
[엑셀VBA] 콤보박스에 항목(목록) 추가하기 Combobox (0) | 2022.11.25 |
[엑셀VBA] 셀 삭제하기 clear, delete (0) | 2022.11.24 |