정보공유 같이해요/EXCEL

[ 엑셀 ] 모든 시트 ( worksheets ) 이미지로 저장하기✅

Rio - Moon 2024. 10. 15. 17:57
728x90
반응형

 

엑셀로 DB 테이블 명세서를 작성한 후, 수십개의 워크시트를 이미지 파일로 저장 하는 작업이 필요해 만들게 되었습니다.

 

다른 필요로 하시는 분들은 삽질없이 쉽게 적용할 수 있었으면 좋겠습니다.

 

# 1. 엑셀 설정 하기

 

우선 엑셀에서 VBA 를 사용해 작업을 할 것 입니다.

우리가 하려는 작업을 위해선 엑셀에서 개발도구를 활성화 해야 합니다.

 

Excel 옵션 - 리본사용자 지정 - 개발도구 체크✅ - 확인

Excel 옵션 - 리본사용자 지정 - 개발도구 체크 ✅ - 확인

 

 

 

# 2. 엑셀 VBA 들어가기

 

 Alt + F11을 눌러 VBA 편집기를 엽니다. ( 개발도구 - 제일왼쪽 Visual Basic 을 누르셔도 됩니다. )

Alt + F11


- 왼쪽 프로젝트 탐색기에서 해당 워크북을 선택합니다.

워크북 선택


- 삽입 > 모듈을 선택하여 새 모듈을 만듭니다.

새모듈 클릭

 

# 3. VBA 코드 작성하기

새모듈을 클릭하면, 해당 화면이 나옵니다. 여기에 하단에 제공드리는 코드를 복사 붙여넣기 하세요

 

코드 확인

더보기
Sub SaveAllSheetsAsImages()
    Dim ws As Worksheet
    Dim saveFolder As String
    Dim tempWorkbook As Workbook
    Dim tempSheet As Worksheet
    Dim oldDisplayAlerts As Boolean

    ' 저장할 폴더 선택
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "이미지를 저장할 폴더를 선택하세요"
        .Show
        If .SelectedItems.Count = 0 Then
            MsgBox "폴더를 선택하지 않았습니다. 매크로를 종료합니다.", vbExclamation
            Exit Sub
        End If
        saveFolder = .SelectedItems(1) & "\"
    End With

    ' 경고 메시지 비활성화
    oldDisplayAlerts = Application.DisplayAlerts
    Application.DisplayAlerts = False

    ' 각 워크시트에 대해 반복
    For Each ws In ThisWorkbook.Worksheets
        ' 새 임시 워크북 생성
        Set tempWorkbook = Workbooks.Add
        Set tempSheet = tempWorkbook.Sheets(1)

        ' 원본 시트의 사용된 범위를 임시 시트로 복사
        ws.UsedRange.Copy
        tempSheet.Paste

        ' 열 너비와 행 높이 조정
        tempSheet.Cells.EntireColumn.AutoFit
        tempSheet.Cells.EntireRow.AutoFit

        ' 임시 시트를 이미지로 내보내기
        tempSheet.ExportAsFixedFormat Type:=xlTypePNG, Filename:=saveFolder & ws.Name & ".png", Quality:=xlQualityStandard

        ' 임시 워크북 닫기 (저장하지 않음)
        tempWorkbook.Close SaveChanges:=False
    Next ws

    ' 경고 메시지 설정 복원
    Application.DisplayAlerts = oldDisplayAlerts

    MsgBox "모든 시트가 이미지로 저장되었습니다." & vbNewLine & "저장 위치: " & saveFolder, vbInformation
End Sub
SaveAllsheetsAsImages

 

 VBA 편집기를 닫고 Excel로 돌아갑니다.

 

# 4. 메크로 실행

개발자 탭 > 매크로를 클릭합니다.

(개발자 탭이 보이지 않으면 Excel 옵션에서 활성화해야 합니다.. Excel 옵션 - 리본사용자 지정 - 개발도구 체크✅ - 확인)

 

매크로 목록에서 'SaveAllSheetsAsImages'를 선택하고 실행을 클릭합니다.

 

매크로

 

 

 

 

# 5. 결과 확인

이미지를 저장할 폴더를 선택합니다.

 

 

수고하셨습니다.

여러분에게 도움이 되었으면 좋겠습니다!

반응형