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

Excel에서 버튼을 클릭하면 이메일을 보내는 방법은 무엇입니까?

Excel 워크 시트에서 버튼을 클릭하여 Outlook을 통해 이메일을 보내야한다고 가정하면 어떻게 할 수 있습니까? 이 기사에서는 VBA 방법을 자세히 소개합니다.

VBA 코드로 버튼을 클릭하면 이메일 보내기


VBA 코드로 버튼을 클릭하면 이메일 보내기

Excel 통합 문서에서 명령 단추를 클릭 한 경우 Outlook을 통해 이메일을 보내려면 다음과 같이하십시오.

1. 클릭하여 워크 시트에 명령 단추를 삽입합니다. 개발자 > 끼워 넣다 > 명령 단추 (ActiveX 컨트롤). 스크린 샷보기 :

2. 삽입 된 명령 단추를 마우스 오른쪽 단추로 클릭 한 다음 코드보기 아래 스크린 샷 쇼와 같이 오른쪽 클릭 메뉴에서.

3. 오프닝에서 응용 프로그램 용 Microsoft Visual Basic 창에서 코드 창의 원래 코드를 다음 VBA 스크립트로 바꾸십시오.

VBA 코드 : Excel에서 버튼을 클릭하면 이메일 보내기

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Body content" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
                  On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "Test email send by button clicking"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

노트:

1). 필요에 따라 이메일 본문을 변경하십시오. xMailBody 코드의 줄.

삼). 교체 이메일 주소 받는 사람 이메일 주소와 함께 .To = "이메일 주소".

삼). 필요에 따라 참조 및 숨은 참조 수신자 지정 .CC =“” .Bcc =“” 섹션을 참조하십시오.

4). 줄에서 이메일 제목 변경 .Subject = "버튼 클릭으로 테스트 이메일 보내기".

4. 누르세요 다른 + Q 키를 동시에 닫아 응용 프로그램 용 Microsoft Visual Basic 창.

5. 클릭하여 디자인 모드를 끕니다. 개발자 > 디자인 모드. 스크린 샷보기 :

이제부터는 Command Button을 클릭 할 때마다 지정된 수신자, 제목 및 본문이 포함 된 이메일이 자동으로 생성됩니다. 클릭하여 이메일을 보내주십시오 전송 버튼을 클릭합니다.

주의 사항: VBA 코드는 Outlook을 전자 메일 프로그램으로 사용할 때만 작동합니다.

Excel에서 생성 된 메일 링리스트의 필드를 기반으로 Outlook을 통해 쉽게 이메일을 보낼 수 있습니다.

또한 이메일 보내기 ~의 유용성 Excel 용 Kutools Excel에서 생성 된 메일 링리스트의 필드를 기반으로 Outlook을 통해 이메일을 보낼 수 있도록 도와줍니다.
지금 다운로드하여 사용해 보세요! (30-하루 무료 트레일)


관련 기사 :


최고의 사무 생산성 도구

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 하단
코멘트 (73)
3.5에서 평가 된 5 · 1 등급
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 피벗 테이블 데이터에서 데이터를 보내려고 합니다. 도와주시겠습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
버튼을 클릭하면 위와 같이 이메일에 첨부되지만 버튼도 제거되도록 스크립트를 작성할 수 있습니까? 이메일로 전송되는 파일의 사본에 더 이상 버튼이 표시되지 않도록 하시겠습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
".Body = xMailBody" 바로 아래에 다음을 추가합니다.
.Attachments.ActiveWorkbook.FullName 추가
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 대니.

말씀하신 대로 부분을 추가했는데 통합문서가 첨부된 이메일에는 아직 버튼이 켜져 있습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 보내기를 누를 필요가 없도록 설정할 수 있습니까? 자동으로 이메일이 전송됩니다????
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
위의 VBA 코드에서 .Display 행을 .Send로 바꾸십시오.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
하나의 이메일만 생성하고 여러 이메일 초안을 여는 대신 내용을 계속 덮어씁니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
먼저 큰 감사를 드립니다. 이 게시물은 첨부 파일에 매우 유용하며 작동합니다. 이것은 나를 위해 작동하지만 저장 버튼을 눌러야하는 시트에 업데이트가 저장되지 않습니다. 첨부 파일에 현재 Excel 시트에 있는 내용이 포함되도록 하고 싶습니다.

Excel에 내장된 이메일 기능을 사용하여 이 작업을 수행할 수 있지만 특정 이메일 주소를 하드코딩해야 하므로 버튼이 필요했습니다.

요약하자면 다음과 같습니다.

방법이 있는지 알고 싶습니다. 사용자가 Excel 통합 문서를 열고 편집한 후 버튼이 업데이트와 함께 첨부 파일을 유지하는지 여부
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 날,
코드가 최적화되었습니다. 시도해 보시고 의견 주셔서 감사합니다.

Private Sub CommandButton1_Click ()
'에 의해 업데이트됨 Extendoffice 2017 / 9 / 14
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
오류에 대한 다음 재개
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
ActiveWorkbook.Save
xMailBody = "본문 내용" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"
오류에 대한 다음 재개
xOutMail과 함께
.To = "이메일 주소"
.CC = ""
.BCC = ""
.Subject = "버튼 클릭으로 테스트 이메일 보내기"
.Body = xMailBody
.Attachments.ActiveWorkbook.FullName 추가
.Display '또는 .Send 사용

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
버튼을 눌렀을 때 활성 통합 문서를 이메일에 첨부하려면 어떻게 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 날,
".Body = xMailBody" 바로 아래에 다음을 추가합니다.
.Attachments.ActiveWorkbook.FullName 추가
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Teria como em vez de enenar a planilha, enenar as informações em imagem?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 VBA 코드를 사용하여 이메일 본문에서 셀 정보를 참조할 수 있습니까? 예를 들어 아래 코드에서 셀 값을 어떻게 참조합니까?

xMailBody = "본문 내용" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"

또한 (.TO = "이메일 주소") 코드를 사용합니다. "이메일 주소"가 옆에 있는 열의 셀에서 이메일 주소를 가져오도록 하려면 어떻게 해야 합니까?


감사합니다,
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
동일한 워크시트에 두 번째 이메일 버튼을 추가할 수 있습니까? 하려고 하면 원래 이메일 버튼의 코드로 연결됩니다. 감사해요.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
각 버튼에 다른 코드를 할당해야 합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 VBA 코드를 사용하여 이메일 본문에서 셀 정보를 참조할 수 있습니까? 예를 들어 아래 코드에서 셀 값을 어떻게 참조합니까?

xMailBody = "본문 내용" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"

감사합니다,
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 글렌,
다음 코드를 적용하십시오. 당신의 의견에 감사드립니다.
xMailBody = [B5]
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
전자 메일에 첨부 파일을 보내는 대신 파일(SharePoint에 있음)에 대한 하이퍼링크를 보낼 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 로리,
당신을 도울 수 없습니다. 당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
주제의 셀에 있는 값을 문자열로 참조할 수 있습니까? 아래의 일부 변형?

.Subject = "새 이벤트:" & Target.Address = "$B$38"
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 아비님
코드를 .Subject = "New Event:" & [B38]로 변경하십시오.
당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕
누구든지 다음 요구 사항에 대해 저를 도울 수 있습니까?
두 개의 드롭다운 목록이 있는 Excel 시트가 있습니다.

1 드롭다운 목록 - 부서 목록

2 드롭다운 목록 - 카테고리

내가 원하는 것은 목록에서 부서와 범주를 선택할 때입니다. (예를 들어 부서에서 "판매"를 선택하고 범주에서 "월간 보고서"를 선택한 경우)

해당 작업 시트의 PDF 버전을 이메일 제목이 월별 보고서인 영업 팀에 이메일로 보내야 합니다.

부서 목록에서 "프로덕션"을 선택하면 이메일이 프로덕션의 사람들 그룹으로 이동해야 합니다.

이 문제에 대해 도움을 주시면 감사하겠습니다.

라시케
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 Rasike,
죄송합니다. 도와드릴 수 없습니다. 포럼에 질문을 게시하는 것을 환영합니다. https://www.extendoffice.com/forum.html Excel 전문가 또는 다른 Excel 팬으로부터 더 많은 Excel 지원을 받으려면
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,

메일이 Outlook에서 내 서명을 자동으로 추가하도록 하려면 어떻게 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 존,
아래 VBA 코드는 문제를 해결하는 데 도움이 될 수 있습니다. 귀하의 의견에 감사드립니다.

Private Sub CommandButton1_Click ()
'에 의해 업데이트됨 Extendoffice 2019 / 6 / 26
개체로 Dim xOutApp
Dim xOutMail을 개체로
오류에 대한 다음 재개
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xOutMail과 함께
.Display '또는 .Send 사용
.To = "이메일 주소"
.CC = ""
.BCC = ""
.Subject = "버튼 클릭으로 테스트 이메일 보내기"
.HTMLBody = "Excel로 보내는 테스트 이메일입니다." & "
" & .HTML바디
'.보내다

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
버튼을 눌러 이메일을 보낼 때 엑셀 사용자여야 합니까? 아니면 이메일을 받는 사람만 Outlook 사용자여야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 날,
이메일은 엑셀에서 버튼을 클릭한 후 아웃룩을 통해 보내야 하기 때문에 컴퓨터에 아웃룩이 설치되어 있어야 작동이 가능합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Excel 워크시트를 이메일로 보내고 싶지만 보내지 않습니다. 문서를 이메일로 보내는 코드를 작성하는 방법
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 마커스,
아래 VBA 코드는 문제 해결에 도움이 될 수 있습니다.

하위 SendWorkSheet()
'업데이트 20190626
Dim xFile을 문자열로
xFormat을 최대한 흐리게
통합 문서로 희미한 Wb
통합 문서로 희미한 Wb2
Dim FilePath를 문자열로
문자열로 Dim FileName
OutlookApp을 개체로 흐리게 처리
OutlookMail을 개체로 흐리게 처리
오류에 대한 다음 재개
Application.ScreenUpdating = False
Wb = Application.ActiveWorkbook 설정
활성시트.복사
Wb2 = Application.ActiveWorkbook 설정
케이스 Wb.FileFormat 선택
사례 xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXML워크북
케이스 xlOpenXMLWorkbookMacroEnabled:
Wb2.HasVBProject이면
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
다른
xFile = ".xlsx"
xFormat = xlOpenXML워크북
END IF
사례 Excel8:
xFile = ".xls"
x형식 = Excel8
케이스 xlExcel12:
xFile = ".xlsb"
x형식 = xlExcel12
선택 종료
파일 경로 = Environ$("temp") & "\"
파일 이름 = Wb.Name 및 형식(지금, "dd-mmm-yy h-mm-ss")
OutlookApp = CreateObject("Outlook.Application") 설정
OutlookMail 설정 = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
OutlookMail 사용
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte 기능"
.Body = "이 문서를 확인하고 읽으십시오."
.Attachments.Wb2.FullName 추가
.디스플레이
'.보내다

Wb2.닫기
FilePath & FileName & xFile 죽이기
OutlookMail 설정 = 없음
OutlookApp 설정 = 없음
Application.ScreenUpdating = True
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
버튼을 눌렀을 때 활성 워크시트를 이메일에 첨부하려면 어떻게 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 그랜트,
버튼을 마우스 오른쪽 버튼으로 클릭하고 코드 보기를 선택한 다음 Private Sub와 End Sub 행 사이에 아래 코드를 복사하십시오. 내가 도울 수 있기를 바랍니다. 귀하의 의견에 감사드립니다.

Dim xFile을 문자열로
xFormat을 최대한 흐리게
통합 문서로 희미한 Wb
통합 문서로 희미한 Wb2
Dim FilePath를 문자열로
문자열로 Dim FileName
OutlookApp을 개체로 흐리게 처리
OutlookMail을 개체로 흐리게 처리
오류에 대한 다음 재개
Application.ScreenUpdating = False
Wb = Application.ActiveWorkbook 설정
활성시트.복사
Wb2 = Application.ActiveWorkbook 설정
케이스 Wb.FileFormat 선택
사례 xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXML워크북
케이스 xlOpenXMLWorkbookMacroEnabled:
Wb2.HasVBProject이면
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
다른
xFile = ".xlsx"
xFormat = xlOpenXML워크북
END IF
사례 Excel8:
xFile = ".xls"
x형식 = Excel8
케이스 xlExcel12:
xFile = ".xlsb"
x형식 = xlExcel12
선택 종료
파일 경로 = Environ$("temp") & "\"
파일 이름 = Wb.Name 및 형식(지금, "dd-mmm-yy h-mm-ss")
OutlookApp = CreateObject("Outlook.Application") 설정
OutlookMail 설정 = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
OutlookMail 사용
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte 기능"
.Body = "이 문서를 확인하고 읽으십시오."
.Attachments.Wb2.FullName 추가
.디스플레이
'.보내다

Wb2.닫기
FilePath & FileName & xFile 죽이기
OutlookMail 설정 = 없음
OutlookApp 설정 = 없음
Application.ScreenUpdating = True
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,

이메일에 첨부할 때 파일명을 현재 날짜로 변경하는 방법이 있나요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,

시트에 작업을 하고 있지만 끝낼 수 없습니다. 나는 당신이 나를 도울 수 있기를 바랍니다 :)

파일 자체는 xltm(템플릿)이어야 하며 메일에 자체 시트를 첨부해야 합니다.

그리고 자동 서명이 있으면 매우 기쁠 것입니다.

미리 감사드립니다 /Dr. 낭
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 저는 80개의 개별 바 계정으로 스프레드시트를 실행하고 이 페이지에서 VBA 코드를 사용하여 많은 성공을 거두었습니다. 그러나 이메일 본문에서 클라이언트가 기록을 가질 수 있도록 보낼 때 계정의 특정 셀 범위를 복사하여 붙여넣고 싶습니다. 이에 대한 VBA 코드를 도와줄 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕! 감사합니다. 환상적인 도움이 되었습니다.

전체 통합 문서 대신 버튼을 눌러 활성 작업 시트를 보낼 수 있습니까?

감사합니다!
아직 코멘트가 없습니다
더보기
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

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