• 최초 작성일: 2003-01-08
  • 최종 수정일: 2026-09-30
  • 조회수: 9 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 셀 영역을 GIF 그림 파일로 저장하기

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

Not on the stage alone, in the world also a man's real character comes out best in his asides. 무대 위에서만이 아니라 현실 세계에서도 그 사람의 진정한 성격은 무심코 내뱉은 한마디 말 속에 가장 잘 나타난다.

늘 말을 조심하며 살아야겠습니다. 뜻대로 잘 안되긴 하지만...

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

셀 영역을 GIF 그림 파일로 저장하기

핵심 요약: 셀 영역을 GIF 파일로 내보내기

차트 개체를 그림의 그릇으로 활용하면 셀 영역도 그림 파일로 저장할 수 있습니다. 핵심은 CopyPicture와 Chart.Export의 조합입니다.

  • 1단계: GetSaveAsFilename으로 저장할 파일 이름을 받습니다.
  • 2단계: 임시 시트에 차트를 만들고 CopyPicture로 복사한 영역을 붙여 넣습니다.
  • 3단계: Chart.Export로 GIF 파일을 저장하고 임시 시트를 삭제합니다.

Step 1: 어떤 질문이었을까요?

ActiveChart.Export를 사용하면 선택한 차트를 곧바로 GIF 파일로 저장할 수 있다는 것은 알게 되었는데, 차트가 아니라 임의로 선택한 셀 영역을 GIF 파일로 만들려면 어떻게 해야 하느냐는 질문이었습니다.

Step 2: 셀 영역을 그림 파일로 저장하기

차트를 그림 파일로 만드는 방법에 대해서는 지난 VB0046 강좌에서 소개드린 바 있습니다. 이번 시간에는 차트가 아닌 워크시트 상의 특정 영역을 그림 파일로 만드는 방법에 대해 살펴보도록 하겠습니다. 적당한 크기의 영역을 선택하신 다음 아래 버튼을 누르세요.

워크시트 상의 영역이 그림 파일(GIF)로 저장이 되었지요?

Sub ExportRangeToGIF()

    Dim chtChart         As ChartObject
    Dim strFile          As String
    Dim strType          As String
    Dim strDupe          As String
    Dim strTemp          As String
    Dim rngTarget        As Range
    Application.ScreenUpdating = False
    Set rngTarget = Selection
    ' 현재 선택된 영역을 rngTarget 이라는 변수에 담아 둡니다.

    strFile = Application.GetSaveAsFilename(InitialFileName:="나의차트", _
        FileFilter:="GIF Files(*.gif),*.gif", _
        Title:="그림의 이름을 지정하세요//Exceller")
    ' 사용자로부터 저장할 그림 파일의 이름을 입력받습니다.

    ' 대화상자를 종료하였거나 이미 같은 이름의 파일이 존재할 경우에 대한 처리를 지정합니다.
    If strFile = "False" Then GoTo ET
    If Dir(strFile) <> "" Then
        strDupe = "같은 이름의 파일이 이미 존재합니다." & vbCr
        strDupe = strDupe & "덮어쓸까요?"
        If MsgBox(strDupe, vbYesNo, "중복 확인//www.iExceller.com") = vbNo Then GoTo ET
    End If

    Worksheets.Add
    strTemp = ActiveSheet.Name
    Charts.Add
    ActiveChart.Location where:=xlLocationAsObject, Name:=strTemp
    Set chtChart = Worksheets(strTemp).ChartObjects(1)
    ' 워크시트를 삽입한 다음 차트 오브젝트를 하나 만듭니다.

    rngTarget.CopyPicture appearance:=xlScreen, Format:=xlPicture
    ' rngTarget 영역을 클립보드에 복사해 둡니다.

    With chtChart
        .Border.LineStyle = xlLineStyleNone
        .Width = rngTarget.Width
        .Height = rngTarget.Height
        .Chart.Paste
        .Chart.Export Filename:=strFile, filtername:="GIF"
        ' 차트의 테두리 선과 크기 등을 지정한 다음 클립보드의 내용을 붙여 넣습니다.
        ' 그런 다음 Export 메서드를 이용하여 그림 파일로 내보냅니다.

    End With

    Application.DisplayAlerts = False
    Worksheets(strTemp).Delete
    Application.DisplayAlerts = True
    ' 차트를 내 보내고 나서 임시로 만들어 두었던 워크시트를 삭제합니다.
    ' ScreenUpdating 속성을 False로 지정한 상태에서 작업을 진행하므로 사용자는 이런
    ' 일련의 과정을 눈치챌 수 없겠지요?

    MsgBox strFile & " 파일이 생성되었습니다.", vbInformation, "저장 완료//www.iExceller.com"

ET:
    If Err <> 0 Then
        MsgBox Err.Description, vbInformation, "오류 발생 : " & Err.Number
        Err.Clear
    End If
    Application.ScreenUpdating = True

End Sub

먼저 CopyPicture 메서드로 선택 영역을 그림 형태로 클립보드에 복사합니다. 그리고 임시 워크시트에 차트 개체를 만들어 크기를 영역과 똑같이 맞춘 다음 그림을 붙여 넣고, Export 메서드로 GIF 파일로 내보냅니다. 작업이 끝나면 임시 워크시트는 삭제하고, ScreenUpdating을 False로 두었으므로 이 과정은 화면에 나타나지 않습니다.

본 강좌의 핵심은... 차트 오브젝트를 이용하여 Range 오브젝트의 내용을 담은 다음 내보내기(Exporting) 한다는 것입니다. 많이들 응용해 보세요.

다음 시간에 또...

정리 — 영역 그림 저장 핵심 코드

구분 사용한 코드 역할
파일 이름 입력 Application.GetSaveAsFilename 저장 경로와 이름 받기
영역 복사 rngTarget.CopyPicture 영역을 그림으로 복사
차트 준비 Charts.Add / ChartObjects(1) 그림을 담을 그릇
내보내기 .Chart.Export Filename, "GIF" GIF 파일 저장
임시 시트 삭제 Worksheets(strTemp).Delete 작업 흔적 제거

자주 묻는 질문 (FAQ)

Q1. 셀 영역을 바로 그림 파일로 저장할 수 있나요?

Range 개체에는 Export 메서드가 없으므로, 차트 개체에 그림을 붙여 넣은 다음 차트의 Export 메서드를 사용하는 방식을 씁니다.

Q2. CopyPicture는 어떤 역할을 하나요?

선택 영역을 그림 형태로 클립보드에 복사합니다. 이 그림을 차트에 붙여 넣으면 차트 크기를 영역 크기와 맞추어 그대로 내보낼 수 있습니다.

Q3. 임시 시트는 왜 삭제하나요?

차트 개체를 만들기 위해 잠시 사용한 시트이므로 작업이 끝나면 지웁니다. 삭제 시 나타나는 경고는 DisplayAlerts를 False로 하여 숨깁니다.

마치며

차트 개체를 이용해 Range의 내용을 담은 다음 내보낸다는 발상을 익혀 두면 다양한 그림 파일 저장 작업에 응용할 수 있습니다.