EXCEL VBA

엑셀 VBA 시트 이름 한번에 바꾸기, 시트 이름 바꾸기 매크로

카루루1007 2023. 10. 8. 22:34
728x90
반응형
SMALL

엑셀을 사용하다보면

여러개의 시트를 만들어야 하는 경우가 생깁니다.

부서별로 데이터를 분류한다거나

반별로 데이터를 분류하는 등

시트 여러개를 한번에 만들어야 하는 일이 생깁니다.

 

만들어야하는 시트가 10개 정도라면

쉽게 만들 수가 있으나,

그 수가 20개, 30개가 넘어가게되면

그리고 그 일을 자주 반복해야 한다면

간단한 VBA 코드를 작성하여

업무의 효율성을 높일 수 있습니다.

 

 [ 만들어볼 기능 ]

첫번째 시트에 아래 그림과 같이 데이터를 입력합니다.

 

입력된 데이터의 양만큼

시트를 만들고 이름을 데이터에 입력된 이름으로

바꾸어 줄 것입니다.

 

현재의 시트를 제외하고

총 10개의 시트가 만들어지고

그 이름이 [ 1반 ~ 10반 ]이 만들어 져야 합니다.

 

만약 아래 그림과 같이

기존에 시트가 있다면,

기존의 시트의 이름은 데이터에 입력된 이름으로 바꾸고

그 외의 시트는 새로 생성하여

이름을 지정해 주는 프로그램을 만들 것입니다.

 

[ 순 서 ]

먼저 아래 그림과 같이

[ A열 ]에 필요한 시트의 이름 데이터를 넣어주고

[ 개발도구 ] → [ 삽입 ] → [ 단추(양식 컨트롤) ]

을 눌러 버튼을 만들어 줍니다.

※VBA를 사용하기 위한 초기설정을 모르신다면 여기를 누르시면 됩니다.

 

그 다음 [ ALT + F11 ]키를 누르거나

[ 개발도구 ] → [ Visual Basic ]를 누른 후

아래 그림과 같이

[ 삽입 ] → [ 모듈 ]

을 차례로 눌러줍니다.

 

728x90
반응형

 

이제 아래의 코드를 복사한 후 붙여 넣기를 합니다.

Sub 시트이름바꾸기()
    Dim ws As Worksheet
    Dim r As Range
    Dim cell As Range
    Dim i As Integer

    Set ws = ActiveSheet

    Set r = ws.Range("A1", ws.Range("A" & Rows.Count).End(xlUp))

    i = 2

    For Each cell In r
        If i <= ThisWorkbook.Sheets.Count Then
            On Error Resume Next
            ThisWorkbook.Sheets(i).Name = cell.Value
            If Err.Number <> 0 Then
                Err.Clear
                MsgBox "시트 이름 '" & cell.Value & "'은(는) 잘못되었거나 이미 사용 중입니다.", vbExclamation
            End If
            On Error GoTo 0
        Else
            ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)).Name = cell.Value
        End If

        i = i + 1

    Next cell
End Sub

 

이 코드는 [ A열 ]에 입력한 데이터만큼

시트의 이름을 바꾸거나, 시트를 새로 생성해서 이름을 지정합니다.

 

첫번째 시트는 건드리지 않고

두번째 시트의 이름부터 바꾸어 나갑니다.

[ i = 2 ]부분 때문에 그렇습니다.

 

데이터의 내용이

시트이름으로 사용하지 못하는

문자열이 있을 경우

경고메세지가 나타나며 프로그램을 종료됩니다.

하지만 프로그램이 종료된 후 다시한번 실행하면

문제가 되는 셀의 데이터를 제외한 나머지 데이터의 내용으로

시트가 다시 만들어집니다.

 

SMALL

 

[ 단추에 매크로 연결하기 ]

 

처음에 만들었던

[ 단추 ]에 마우스 우클릭을 한 후

[ 매크로 지정 ]을 눌러줍니다.

 

만들어 둔 매크로를 선택한 후

[ 확인 ]을 눌러줍니다.

 

이제 [ A열 ]에 데이터를 입력하고

[ 단추 ]를 누르면

매크로가 실행되고

시트가 만들어집니다.

 

다음은 해당 프로그램을 실행했을 때

실행되는 화면입니다.

728x90
반응형
LIST