Note: The other languages of the website are Google-translated. Back to English

Excel에서 vba를 사용하여 이메일로 특정 차트를 보내는 방법은 무엇입니까?

VBA 코드를 사용하여 Excel에서 Outlook을 통해 전자 메일을 보내는 방법을 알 수 있습니다. 그러나 특정 워크 시트의 특정 차트를 이메일 본문에 첨부하는 방법을 알고 있습니까? 이 기사에서는이 문제를 해결하는 방법을 보여줍니다.

VBA 코드를 사용하여 Excel에서 전자 메일로 특정 차트 보내기


VBA 코드를 사용하여 Excel에서 전자 메일로 특정 차트 보내기

Excel에서 VBA 코드가 포함 된 이메일로 특정 차트를 보내려면 다음과 같이하십시오.

1. 이메일 본문에 첨부 할 차트가 포함 된 워크 시트에서 다른 + F11 키를 눌러 응용 프로그램 용 Microsoft Visual Basic 창.

2. 에서 응용 프로그램 용 Microsoft Visual Basic 창을 클릭하십시오 끼워 넣다 > 모듈. 그런 다음 VBA 코드 아래를 코드 창에 복사하십시오.

VBA 코드 : Excel에서 이메일로 특정 차트 보내기

Sub mailHTMLsend()
'Updated by Extendoffice 2018/3/5
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xStartMsg As String
    Dim xEndMsg As String
    Dim xChartName As String
    Dim xChartPath As String
    Dim xPath As String
    Dim xChart As ChartObject
    On Error Resume Next
    xChartName = Application.InputBox("Please enter the chart name:", "KuTools for Excel", , , , , , 2)
    If xChartName = "" Then Exit Sub
    Set xChart = Sheets("Sheet1").ChartObjects(xChartName) 'Change "Sheet1" to your worksheet name
    If xChart Is Nothing Then Exit Sub
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xStartMsg = "<font size='5' color='black'> Good Day," & "<br> <br>" & "Please find the chart below: " & "<br> <br> </font>"
    xEndMsg = "<font size='4' color='black'> Many Thanks," & "<br> <br> </font>"
    xChartPath = Application.ActiveWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".bmp"
    xPath = "<p align='Left'><img src=" & "cid:" & Mid(xChartPath, InStrRev(xChartPath, "\") + 1) & """  width=700 height=500 > <br> <br>"
    xChart.Chart.Export xChartPath
    With xOutMail
        .To = "xrr@163.com"
        .Subject = "Add Chart in outlook mail body"
        .Attachments.Add xChartPath
        .HTMLBody = xStartMsg & xPath & xEndMsg
        .Display
    End With
    Kill xChartPath
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

주의 사항: 코드에서 수신자의 이메일 주소와 이메일 제목을 입력 해주세요. .To = "xrr@163.com" 라인 .Subject = "Outlook 메일 본문에 차트 추가" , Sheet1 보내려는 차트가 포함 된 시트입니다. 자신의 차트로 변경하십시오.

3. 누르세요 F5 코드를 실행하는 키입니다. 오프닝에서 Excel 용 Kutools 대화 상자에서 전자 메일 본문에 첨부 할 차트 이름을 입력 한 다음 OK 단추. 스크린 샷보기 :

그러면 아래 스크린 샷과 같이 이메일 본문에 지정된 차트가 표시된 이메일이 자동으로 생성됩니다. 이 이메일을 보내려면 보내기 버튼을 클릭하십시오.


관련 기사 :

 

 

 


최고의 사무 생산성 도구

Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단

 

 

코멘트 (13)
아직 평가가 없습니다. 가장 먼저 평가하세요!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
차트 이름을 입력하면 메일이 대화 상자를 생성하지 않고 닫힙니다. 내가 무엇을 잘못했는지 알 수 있습니까? 나는 각 단계를 따랐다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
문제는 테이블과 같은 차트 개체의 이름을 설정할 수 없다는 것입니다. 작동하려면 정수 ID를 전달해야 합니다. 예를 들어 "Sheet1"에 1개의 차트만 있는 경우 msgbox가 나타날 때 값 1을 전달하려고 합니다.

추신: 나쁜 영어에 대해 유감스럽게 생각합니다.]
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
hola como puede envira por correo, una tabla dinámica, y no un grafico
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
코드에 오류가 있습니다: "\") + 1) & "" " 너비=700 높이=50굵은 텍스트에서 가운데 ​​텍스트는 하나의 역 쉼표여야 합니다.

이 댓글은 사이트의 중재자에 의해 최소화되었습니다
차트를 첨부 파일로 포함합니다. 메일 본문 자체에 그림으로 포함하는 방법을 알고 있습니까? 고마워요, 유세프
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
같은 문제, 어떤 해결책이 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 J님,
코드가 업데이트되었습니다. 시도해 주세요. 불편을 드려 죄송합니다.


Sub mailHTMLsend()
'Updated by Extendoffice 2018/3/5
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xStartMsg As String
    Dim xEndMsg As String
    Dim xChartName As String
    Dim xChartPath As String
    Dim xPath As String
    Dim xChart As ChartObject
    On Error Resume Next
    xChartName = Application.InputBox("Please enter the chart name:", "KuTools for Excel", , , , , , 2)
    If xChartName = "" Then Exit Sub
    Set xChart = Sheets("Sheet1").ChartObjects(xChartName) 'Change "Sheet1" to your worksheet name
    If xChart Is Nothing Then Exit Sub
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xStartMsg = "<font size='5' color='black'> Good Day," & "<br> <br>" & "Please find the chart below: " & "<br> <br> </font>"
    xEndMsg = "<font size='4' color='black'> Many Thanks," & "<br> <br> </font>"
    xChartPath = Application.ActiveWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".bmp"
    xPath = "<p align='Left'><img src="/%20&%20"cid:" & Mid(xChartPath, InStrRev(xChartPath, "\") + 1) & """  width=700 height=500 > <br> <br>"
    xChart.Chart.Export xChartPath
    With xOutMail
        .To = "xrr@163.com"
        .Subject = "Add Chart in outlook mail body"
        .Attachments.Add xChartPath
        .HTMLBody = xStartMsg & xPath & xEndMsg
        .Display
    End With
    Kill xChartPath
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요
mi nic sie nie załącza, czy coś tutaj należałoby wpisać jeszcze?
xPath = "co tutaj trzeba wprowadzić?"
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 쿠바,
제거해주세요 / 태그 <img src="/.
이 오류는 사이트의 편집자에 의해 발생합니다.
불편을 드려 죄송합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
cześć, pełny kod działa tylko do momentu podglądu komunikatu, przy wysyłce adresat otrzymuje błąd i wykresu nie widać ("Nie można wyświetlić połączonego obrazu. Plik mógł zostać przeniesiony lub usunięty albo zmieniono jego nazwę. Sprawdź czy łącze wskazuje poprawny plik i lokazlizację.") Czy z was też tak ktoś miał czy tylko u mnie taki zonk? Prosze o pomoc, tutaj kod, który dotyczy wykresum już tak mało brakuje :)

Dim xChartName을 문자열로
Dim xChartPath를 문자열로
Dim xPath를 문자열로
Dim xChart를 ChartObject로
오류에 대한 다음 재개
문자열로 희미한 wydzialy
wydzialy = lista.Cells(3, 75)
xChartName = Application.InputBox(wydzialy, "KuTools for Excel", , , , , , 2) 'Wykres1 '"차트 이름을 입력하세요:"
xChartName = ""이면 Sub 종료
Set xChart = Sheets("Wykresy").ChartObjects(xChartName) '"Sheet1"을 워크시트 이름으로 변경
xChart가 아무것도 없으면 Sub를 종료하십시오.
xChartPath = Application.ActiveWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".svg" '.bmp '.svg '.svg ma lepsza jakość
x경로 = " "
xChart.Chart.Export xChartPath


OutApp을 개체로 흐리게 처리
OutMail을 개체로 흐리게 처리
OutApp = CreateObject("Outlook.Application") 설정
OutMail 설정 = OutApp.CreateItem(0)
아웃메일과 함께
.받는 사람 = 이메일(b)
.CC = 이메일_dw(b)
.Subject = "XXXX" ' - " & lista.Cells(i, 66)
.Attachments.xChartPath 추가
.HTMLBody = "treść" & xPath

.SendUsingAccount = OutApp.Session.Accounts.Item(1) 설정

.디스플레이

xChartPath 죽이기
OutMail 설정 = 없음
OutApp 설정 = 없음
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 쿠바,
코드가 업데이트되었습니다. 수신자는 차트를 정상적으로 볼 수 있습니다. 시도해 보십시오.
주의 사항: 코드에서 "차트 1"를 차트 이름에 추가하고 받는 사람 필드에 이메일 주소를 지정합니다.
Sub mailHTMLsend()
'Updated by Extendoffice 20221013
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xStartMsg As String
    Dim xEndMsg As String
    Dim xChartName 'As String
    Dim xChartPath As String
    Dim xPath As String
    Dim xChart As ChartObject
    On Error Resume Next
    xChartName = "Chart 1" 'The name of the chart in the current worksheet you want to send.
    If xChartName = "" Then Exit Sub
    Set xChart = Application.ActiveSheet.ChartObjects(xChartName)
    If xChart Is Nothing Then Exit Sub
    
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    
    xStartMsg = "<font size='5' color='black'> Good Day," & "<br> <br>" & "Please find the chart below: " & "<br> <br> </font>"
    xEndMsg = "<font size='4' color='black'> Many Thanks," & "<br> <br> </font>"
    xChartPath = Application.ActiveWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".bmp"
    
    xPath = "<p align='Left'><img src="/%20&%20"cid:" & Mid(xChartPath, InStrRev(xChartPath, "\") + 1) & """  width=700 height=500 > <br> <br>"
    
    xChart.Chart.Export xChartPath
    With xOutMail
        .To = "Email Address"
        .Subject = "Add Chart in outlook mail body"
        .Attachments.Add xChartPath
        .HTMLBody = xStartMsg & xPath & xEndMsg
        .Display
    End With
    Kill xChartPath
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 메일 본문에 공백을 추가하고 싶습니다. 어떤 키워드를 사용해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하십니까?
코드의 다음 두 줄에는 이메일 본문 내용이 포함되어 있습니다. 키보드의 스페이스 키를 눌러 공백을 추가하여 전자 메일 본문을 수동으로 수정할 수 있습니다.
xStartMsg = "<font size='5' color='black'> Good Day," & "<br> <br>" & "Please find the chart below: " & "<br> <br> </font>"
xEndMsg = "<font size='4' color='black'> Many Thanks," & "<br> <br> </font>"
아직 코멘트가 없습니다
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호