KutoolsforOffice— 하나의 솔루션, 다섯 가지 강력한 도구。적은 노력으로 더 큰 성과。

Excel 에서 셀 범위를 이미지로 메시지 본문에 붙여넣는 방법은 무엇인가요?

작성자Xiaoyang수정 날짜

Excel 에서 이메일을 보낼 때 셀 범위를 복사하여 이미지로 메시지 본문에 붙여넣어야 한다면, 이 작업을 어떻게 처리할 수 있을까요?

Excel 에서 VBA 코드를 사용해 셀 범위를 이메일 본문에 이미지로 붙여넣기


Excel 에서 VBA 코드를 사용해 셀 범위를 이메일 본문에 이미지로 붙여넣기

이 작업을 해결할 만한 다른 좋은 방법이 없을 수도 있습니다。 이 글에 소개된 VBA 코드가 도움이 될 수 있습니다。 다음 단계를 따르세요:

1。 이미지를 붙여넣고자 하는 워크시트를 활성화한 후ALT + F11키를 누르고 있으면Microsoft Visual Basic for Applications창이 열립니다。

2。 클릭하세요。삽입>모듈, 그런 다음 다음 코드를모듈창에 붙여넣으세요。

VBA 코드: 셀 범위를 이메일 본문에 이미지로 붙여넣기:

Sub sendMail()
    Dim TempFilePath As String
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xHTMLBody As String
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Application.InputBox("Please select the data range:", "KuTools for Excel", Selection.Address, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    With Application
        .Calculation = xlManual
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    Set xOutApp = CreateObject("outlook.application")
    Set xOutMail = xOutApp.CreateItem(olMailItem)
    Call createJpg(ActiveSheet.Name, xRg.Address, "DashboardFile")
    TempFilePath = Environ$("temp") & "\"
    xHTMLBody = "<span LANG=EN>" _
            & "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=3>" _
            & "Hello, this is the data range that you want:<br> " _
            & "<br>" _
            & "<img src='//cdn.extendoffice.com/cid:DashboardFile.jpg'>" _
            & "<br>Best Regards!</font></span>"
    With xOutMail
        .Subject = ""
        .HTMLBody = xHTMLBody
      .Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue
        .To = " "
        .Cc = " "
        .Display
    End With
End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
    Dim xRgPic As Range
    Dim xShape As Shape
    ThisWorkbook.Activate
    Worksheets(SheetName).Activate
    Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)
    xRgPic.CopyPicture
    With ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.Width, xRgPic.Height)
        .Activate
        For Each xShape In ActiveSheet.Shapes
            xShape.Line.Visible = msoFalse
        Next
        .Chart.Paste
        .Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
    End With
   Worksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub

참고: 위의 코드에서 본문 내용과 이메일 주소를 필요에 따라 변경할 수 있습니다。

3。 코드를 삽입한 후F5키를 눌러 코드를 실행하면, 이메일 본문에 그림으로 삽입할 데이터 범위을 선택하라는 대화 상자가 표시됩니다。 다음 스크린샷을 참조하세요:

이메일 본문에 붙여넣을 범위를 선택하는 스크린샷

4.그런 다음확인버튼을 클릭하면메시지창이 나타나며, 데이터 선택 범위가 이미지로 본문에 삽입됩니다。 다음 스크린샷을 참조하세요:

이미지 형태로 이메일 본문에 삽입된 선택된 범위의 스크린샷

참고:메시지창에서 본문 내용과 받는 사람 및 참조(CC) 필드의 이메일 주소도 필요에 따라 변경할 수 있습니다。

5。 마지막으로보내기버튼을 클릭하여 이 이메일을 보내세요。


참고: 여러 워크시트에서 여러 범위를 붙여넣어야 한다면, 아래의 VBA 코드가 도움이 될 수 있습니다:

먼저 이메일 본문에 그림으로 삽입하고자 하는 여러 범위를 선택한 후, 다음 코드를 적용하세요:

VBA 코드: 여러 셀 범위를 이메일 본문에 이미지로 붙여넣기:

Sub sendMail()
    Dim TempFilePath As String
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xHTMLBody As String
    Dim xRg As Range
    Dim xSheet As Worksheet
    Dim xAcSheet As Worksheet
    Dim xFileName As String
    Dim xSrc As String
    On Error Resume Next
    TempFilePath = Environ$("temp") & "\RangePic\"
    If Len(VBA.Dir(TempFilePath, vbDirectory)) = False Then
      VBA.MkDir TempFilePath
    End If
    Set xAcSheet = Application.ActiveSheet
    For Each xSheet In Application.Worksheets
        xSheet.Activate
        Set xRg = xSheet.Application.Selection
        If xRg.Cells.Count > 1 Then
            Call createJpg(xSheet.Name, xRg.Address, "DashboardFile" & VBA.Trim(VBA.Str(xSheet.Index)))
        End If
    Next
    xAcSheet.Activate
    With Application
        .Calculation = xlManual
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    Set xOutApp = CreateObject("outlook.application")
    Set xOutMail = xOutApp.CreateItem(olMailItem)
    xSrc = ""
    xFileName = Dir(TempFilePath & "*.*")
    Do While xFileName <> ""
        xSrc = xSrc + VBA.vbCrLf + "<img src='cid:" + xFileName + "'><br>"
        xFileName = Dir
        If xFileName = "" Then Exit Do
    Loop
    xHTMLBody = "<span LANG=EN>" _
                & "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=3>" _
                & "Hello, this is the data range that you want:<br> " _
                & "<br>" _
                & xSrc _
                & "<br>Best Regards!</font></span>"
    With xOutMail
        .Subject = ""
        .HTMLBody = xHTMLBody
        xFileName = Dir(TempFilePath & "*.*")
        Do While xFileName <> ""
            .Attachments.Add TempFilePath & xFileName, olByValue
            xFileName = Dir
        If xFileName = "" Then Exit Do
        Loop
        .To = " "
        .Cc = " "
       .Display
    End With
    If VBA.Dir(TempFilePath & "*.*") <> "" Then
        VBA.Kill TempFilePath & "*.*"
    End If
End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
    Dim xRgPic As Range
    ThisWorkbook.Activate
    Worksheets(SheetName).Activate
    Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)
    xRgPic.CopyPicture
    With ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.Width, xRgPic.Height)
        .Activate
        .Chart.Paste
        .Chart.Export Environ$("temp") & "\RangePic\" & nameFile & ".jpg", "JPG"
    End With
    Worksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub

최고의 Office 생산성 도구

🤖KUTOOLS AI 도우미: 다음을 기반으로 데이터 분석 혁신하기:지능형 실행   |  코드 생성|  사용자 지정 수식 생성  |  데이터 분석 및 차트 생성|  향상된 함수 호출
인기 기능:찾기, 강조 표시 또는 중복 표시   |  빈 행 삭제   |  데이터 손실 없이 열 결합 또는 셀 제거   |  공식을 사용하지 않는 반올림...
슈퍼 LOOKUP:다중 조건 VLookup  |  다중 값 VLookup  |   여러 시트에서 VLookup   |   퍼지 매치....
고급 드롭다운 목록:드롭다운 목록 빠르게 생성   |  종속형 드롭다운 목록   |  다중 선택 드롭다운 목록....
열 관리자:특정 수의 열 추가|열 이동|숨겨진 열의 표시 상태 전환|범위 및 열 비교...
주요 기능:그리드 포커스   |  디자인 보기   |향상된 수식 표시줄   | 워크북 및 시트 관리자   |  자원 라이브러리(자동 텍스트)|  날짜 선택기   |  워크시트 병합  |  암호화/셀 해독   | 목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터(굵은 글꼴이 있는 셀 필터링/기울임꼴/취소선。。。) 。。。
상위 15 도구 모음:12 텍스트도구(텍스트 추가,특정 문자 삭제, ...)|   50+차트유형(간트 차트, ...)|   40+ 실용적인수식(생일을 기준으로 나이 계산, ...)|   19 삽입도구(QR 코드 삽입,경로에서 그림 삽입, ...)|   12 변환도구(단어로 변환하기,환율 변환, ...)|   7 병합 및 분할도구(고급 행 병합,셀 분할, ...)|그 외 더 많은 기능
Kutools 를 선호하는 언어로 사용하세요 – 영어, 스페인어, 독일어, 프랑스어, 중국어 및 40+개 이상의 언어를 지원합니다!

Kutools for Excel 로 Excel 역량을 한 단계 업그레이드하고 전례 없는 효율성을 경험하세요。Kutools for Excel 는 생산성과 저장 시간을 향상시키는 300 개 이상의 고급 기능을 제공합니다。가장 필요한 기능을 지금 바로 확인하세요。。。


Office Tab 가 Office 에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만들어 줍니다

  • Word, Excel, PowerPoint 에서 탭 기반 편집 및 읽기 기능을 활성화합니다, Publisher, Access, Visio 및 Project 에서도 사용 가능합니다。
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 생성할 수 있습니다。
  • 50% 만큼 생산성을 높이고 매일 수백 번의 마우스 클릭을 줄여줍니다!

모든 Kutools 애드인。 하나의 설치 프로그램

Kutools for Office스위트 번들은 Excel, Word, Outlook 및 PowerPoint 용 애드인과 Office Tab Pro 를 포함하며, 다양한 Office 앱을 사용하는 팀에 이상적입니다。

ExcelWordOutlookTabsPowerPoint
  • 올인원 스위트— Excel, Word, Outlook 및 PowerPoint 애드인 + Office Tab Pro
  • 하나의 설치 프로그램, 하나의 라이선스— 몇 분 안에 설정 완료(MSI 지원)
  • 함께 사용할수록 더 효과적입니다— Office 앱 전반에서 생산성 향상
  • 30 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
  • 최고의 가성비— 개별 애드인 구매 대비 절약