본문 바로가기
생활 Tip

[엑셀 매크로] 여러 시트를 개별 파일로 저장하는 방법

by upself 2024. 8. 7.
728x90

 

 

- 엑셀 파일 (.xlsx)
- VBA 매크로 사용을 위한 엑셀

 

1. 엑셀에서 VBA 편집기를 엽니다. (Alt + F11)

Alt + F11

 

2. '삽입' -> '모듈'을 클릭하여 새 모듈을 추가합니다.

삽입(I) -> 모듈(M)

 

3. 아래의 코드를 복사하여 붙여넣고 F5를 누릅니다.

Sub SaveSheetsAsSeparateFiles()
    Dim SaveDirectory As String
    Dim CurrentSheet As Worksheet
    Dim ValidSheetName As String

    SaveDirectory = Application.ActiveWorkbook.Path

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    For Each CurrentSheet In ThisWorkbook.Sheets
        CurrentSheet.Copy

        ' 파일 이름에 사용할 수 없는 문자 제거
        ValidSheetName = CurrentSheet.Name
        ValidSheetName = Replace(ValidSheetName, "/", "")
        ValidSheetName = Replace(ValidSheetName, "\", "")
        ValidSheetName = Replace(ValidSheetName, ":", "")
        ValidSheetName = Replace(ValidSheetName, "*", "")
        ValidSheetName = Replace(ValidSheetName, "?", "")
        ValidSheetName = Replace(ValidSheetName, """", "")
        ValidSheetName = Replace(ValidSheetName, "<", "")
        ValidSheetName = Replace(ValidSheetName, ">", "")
        ValidSheetName = Replace(ValidSheetName, "|", "")

        Application.ActiveWorkbook.SaveAs Filename:=SaveDirectory & "\" & ValidSheetName & ".xlsx"
        Application.ActiveWorkbook.Close False
    Next CurrentSheet

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    MsgBox "모든 시트를 개별 파일로 저장했습니다."
End Sub

 

 

 

반응형