엑셀에서 여러 시트를 각각의 파일로 이동하고, 파일 이름을 시트 이름으로 저장하는 매크로를 작성하는 방법을 안내해 드리겠습니다. 다음은 VBA 매크로를 사용하여 이 작업을 수행하는 코드입니다.

  1. 엑셀 파일을 열기:
    먼저, 작업하려는 엑셀 파일을 엽니다.

  2. VBA 편집기 열기:
    Alt + F11을 눌러 VBA 편집기를 엽니다.

  3. 새 모듈 추가:
    삽입 > 모듈을 클릭하여 새 모듈을 추가합니다.

  4. VBA 코드 입력:
    아래의 코드를 새 모듈에 복사하여 붙여넣습니다.

    Sub SaveSheetsAsSeparateFiles()
        Dim ws As Worksheet
        Dim wb As Workbook
        Dim newWb As Workbook
        Dim FilePath As String
    
        ' 현재 워크북의 파일 경로
        FilePath = ThisWorkbook.Path & "\"
    
        ' 각 시트를 개별 파일로 이동 및 저장
        Application.ScreenUpdating = False
        For Each ws In ThisWorkbook.Worksheets
            ' 새로운 워크북 생성
            ws.Copy
            Set newWb = ActiveWorkbook
            ' 새로운 워크북에 시트를 이동
            Set wsNew = newWb.Worksheets(1)
            ' 파일 저장
            newWb.SaveAs FilePath & ws.Name & ".xlsx"
            newWb.Close False
        Next ws
        Application.ScreenUpdating = True
    
        MsgBox "모든 시트가 개별 파일로 저장되었습니다.", vbInformation
    End Sub
  5. 코드 실행:
    VBA 편집기에서 F5 키를 눌러 코드를 실행합니다.

이 매크로는 현재 워크북의 각 시트를 새로운 워크북으로 복사하고, 원래 파일과 동일한 디렉터리에 시트 이름을 가진 개별 파일로 저장합니다. 작업이 완료되면 알림 메시지가 표시됩니다.

코드 설명:

  • FilePath = ThisWorkbook.Path & "\": 현재 워크북의 경로를 가져옵니다.
  • Application.ScreenUpdating = FalseApplication.ScreenUpdating = True: 화면 업데이트를 중지하고, 작업이 끝난 후 다시 활성화하여 성능을 향상시킵니다.
  • ws.Copy: 현재 시트를 새로운 워크북으로 복사합니다.
  • Set newWb = ActiveWorkbook: 새로 생성된 워크북을 참조합니다.
  • newWb.SaveAs FilePath & ws.Name & ".xlsx": 새 워크북을 시트 이름을 파일 이름으로 하여 저장합니다.
  • newWb.Close False: 새 워크북을 저장한 후 닫습니다.
  • MsgBox: 작업이 완료되면 메시지 박스를 표시합니다.

이 방법을 사용하면 여러 시트를 빠르고 쉽게 각각의 파일로 이동하여 저장할 수 있습니다.

+ Recent posts