Domenic에는 E 열의 프로젝트 기한을 보여주는 워크 시트가 있습니다.

그는 조건부 서식을 사용하여 기한에 도달 한시기 (오늘 날짜와 같은 경우)를 표시 할 수 있지만 실제로 필요한 것은 기한에 도달했을 때 보낼 전자 메일입니다. 그는 Excel에서이 작업을 수행하는 방법이 있는지 궁금합니다.

실제로 매크로를 사용해도 괜찮다면이를 수행 할 수있는 방법이 있습니다. 또한 Outlook을 통해 전자 메일을 보내야합니다. 그러면 VBA가 잘 통신합니다. (불행히도 VBA는 다른 메일 클라이언트와 연결하는 데 쉽게 사용할 수 없습니다.)

예를 들어 여기에는 통합 문서가 열릴 때마다 실행되는 매크로가 있습니다. 워크 시트의 각 행을 자동으로 확인합니다. 특히 E 열의 기한과 F 열의 “플래그 값”을 입력합니다. (이 플래그 값은 매크로에 의해 설정됩니다. F 열에 문자 “S, “그러면 매크로는 이전에 이메일이 전송 된 것으로 가정합니다.)

Private Sub Workbook_Open()

Dim OutApp As Object     Dim OutMail As Object     Dim lLastRow As Long     Dim lRow As Long     Dim sSendTo As String     Dim sSendCC As String     Dim sSendBCC As String     Dim sSubject As String     Dim sTemp As String

Set OutApp = CreateObject("Outlook.Application")

OutApp.Session.Logon

' Change the following as needed     sSendTo = "[email protected]"

sSendCC = ""

sSendBCC = ""

sSubject = "Due date reached"



lLastRow = Cells(Rows.Count, 3).End(xlUp).Row     For lRow = 2 To lLastRow         If Cells(lRow, 6) <> "S" Then             If Cells(lRow, 5) <= Date Then                 Set OutMail = OutApp.CreateItem(0)



On Error Resume Next                 With OutMail                     .To = sSendTo                     If sSendCC > "" Then .CC = sSendCC                     If sSendBCC > "" Then .BCC = sSendBCC                     .Subject = sSubject

sTemp = "Hello!" & vbCrLf & vbCrLf                     sTemp = sTemp & "The due date has been reached "

sTemp = sTemp & "for this project:" & vbCrLf & vbCrLf                     ' Assumes project name is in column B                     sTemp = sTemp & "    " & Cells(lRow,2)

sTemp = sTemp & "Please take the appropriate"

sTemp = sTemp & "action." & vbCrLf & vbCrLf                     sTemp = sTemp & "Thank you!" & vbCrLf

.Body = sTemp                     ' Change the following to .Send if you want to                     ' send the message without reviewing first                     .Display                 End With                 Set OutMail = Nothing

Cells(lRow, 6) = "S"

Cells(lRow, 7) = "E-mail sent on: " & Now()

End If         End If     Next lRow     Set OutApp = Nothing End Sub

매크로가 실행되면 (다시 통합 문서가 처음 열릴 때) 워크 시트의 각 행을 확인하여 F 열에 “S”가 있는지 확인합니다.

그렇지 않은 경우 E 열의 날짜가 오늘 날짜와 같은지 확인합니다. 그렇다면 코드는 보낼 전자 메일 메시지 (원하는대로 수정할 수 있음)를 모 읍니다. 이메일이 표시되고 원하는 변경을 한 후 보내기 버튼을 클릭 할 수 있습니다.

이 시점에서 워크 시트는 F 열에 “S”표시기를 배치하고 전자 메일이 G 열에 전송 된 날짜를 배치하여 업데이트됩니다.

매크로는 프로젝트 이름이 B 열에 있다고 가정합니다.

이 정보는 이메일로 보낼 메시지를 모으는 데 사용됩니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶으면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (474)은 Microsoft Excel 2007, 2010, 2013 및 2016에 적용됩니다.