Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 워크시트(Worksheet) 개체를 이용해서 시트 관리하기

엑셀(Excel)/VBA
반응형

VBA 에는 워크시트를 제어할 수 있는 개체를 제공하고 있습니다. 이 개체를 이용하면 시트를 추가하거나 기존에 존재하던 이름을 변경할 수 있습니다. 또한 시트를 삭제하거나 위치를 바꿀 수도 있습니다. 샘플 예제를 통해서 어떻게 구현하는지 알아 보겠습니다. 

 

 

◎ 현재 시트명을 알아 오는 방법

 

▼ 현재 활성화된 시트명을 가져오는 방법입니다. ActiveSheet 는 활성화된 시트 개체 입니다. 개체에서 Name 속성값이 활성화된 시트 개체의 이름을 나타냅니다. 다른 특정 시트를 활성화 시켜서 이름을 알고 싶다면 Worksheets("Sheet2").Activate 로 활성화하고 나서 값을 가져옵니다. 

Sub Sheet_Click()
    MsgBox "현재 활성화된 시트명은 " & ActiveSheet.Name & " 입니다."End Sub

엑셀(Excel) VBA – 워크시트(Worksheet) 개체를 이용해서 시트 관리하는 방법

 

◎ 2. Sheet 추가하는 방법

 

▼ 다음은 새로운 시트를 추가하는 방법입니다. 시트를 추가하기 위해 Worksheets 개체를 사용합니다. Add 함수를 이용하면 시츠를 추가할 수 있습니다. 그런데 인수로 아무것도 넘기지 않으면 그림처럼 활성화된 시트 앞쪽에 추가가 됩니다. 보통 뒤에서 차례대로 추가하고 싶겠죠. 

Sub Sheet_Click()
    Worksheets.Add
End Sub

엑셀(Excel) VBA – 워크시트(Worksheet) 개체를 이용해서 시트 관리하는 방법

 

▼ 현재 활성화된 시트 뒤에서부터 차례대로 추가하고 싶다면 Add 함수에 after 인수 변수를 붙이고 값을 넣어야 합니다. after:=Worksheets(1) 는 현재 활성화된 시트 바로 붙이겠다는 의미입니다. Count 는 추가하고 싶은 시트의 개수를 나타냅니다.

Sub Sheet_Click()
    Worksheets.Add after:=Worksheets(1), Count:=1
End Sub

엑셀(Excel) VBA – 워크시트(Worksheet) 개체를 이용해서 시트 관리하는 방법

 

◎ 3. 시트 활성화와 시트 이름 변경하는 방법

 

▼ 기존에 추가되어 있던 시트명을 변경하는 방법입니다. Worksheets("Sheet2").Activate 에서 지정한 "Sheet2" 가 없으면 현재 활성화된 시트명을 바꾸게 됩니다. "Sheet2" 의 시트명을 바꾸기 위해 Activate 를 사용해서 활성화 시킨 뒤 ActiveSheet 의 Name 속성에 바꿀 이름을 넣었습니다.

Sub Sheet_Click()
    Worksheets("Sheet2").Activate
    ActiveSheet.Name = "ChangName"
End Sub

엑셀(Excel) VBA – 워크시트(Worksheet) 개체를 이용해서 시트 관리하는 방법

 

◎ 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

엑셀(Excel) VBA – 워크시트(Worksheet) 개체를 이용해서 시트 관리하는 방법


▼ 다음은 시트를 삭제하는 방법입니다. 시트를 삭제할 때 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 – 워크시트(Worksheet) 개체를 이용해서 시트 관리하는 방법

반응형
Posted by 녹두장군1
,