특정 이메일이 도착할 때 첨부 파일을 자동으로 인쇄하는 방법은 무엇입니까?
이 튜토리얼에서는 VBA 스크립트와 Outlook 규칙을 결합하여 특정 이메일의 첨부 파일을 자동으로 인쇄하는 방법을 보여줍니다.
특정 이메일이 도착하면 첨부 파일 자동 인쇄
특정 발신자로부터 온 이메일의 첨부 파일을 자동으로 인쇄하려고 한다고 가정합니다. 이를 수행하려면 다음 단계를 따르세요.
1단계: Outlook에서 스크립트 생성하기
먼저, Outlook에서 VBA 스크립트를 생성해야 합니다.
1. Outlook을 실행하고 Alt + F11 키를 동시에 눌러 Microsoft Visual Basic for Applications 창을 엽니다.
2. Microsoft Visual Basic for Applications 창에서 Project1 > Microsoft Outlook Objects > ThisOutlookSession을 더블 클릭하여 ThisOutlookSession (코드) 창을 열고, 아래 코드를 복사하여 붙여넣습니다.

VBA 코드 1: 이메일 도착 시 모든 종류의 첨부 파일 자동 인쇄
Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
Dim xFS As FileSystemObject
Dim xTempFolder As String
Dim xAtt As Attachment
Dim xShell As Object
Dim xFolder As Object, xFolderItem As Object
Dim xFileName As String
On Error GoTo xError
If Item.Attachments.Count = 0 Then Exit Sub
Set xFS = New FileSystemObject
xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
If Not xFS.FolderExists(xTempFolder) Then
MkDir (xTempFolder)
End If
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.NameSpace(0)
For Each xAtt In Item.Attachments
If IsEmbeddedAttachment(xAtt) = False Then
xFileName = xTempFolder & "\" & xAtt.FileName
xAtt.SaveAsFile (xFileName)
Set xFolderItem = xFolder.ParseName(xFileName)
xFolderItem.InvokeVerbEx ("print")
End If
Next xAtt
Set xFS = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
Set xShell = Nothing
xError:
If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
Err.Clear
End If
Exit Sub
End Sub
Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
xHtml = xItem.HTMLBody
xID = "cid:" & xCid
If InStr(xHtml, xID) > 0 Then
IsEmbeddedAttachment = True
End If
End If
End Function
참고: 이 코드는 이메일로 수신된 모든 종류의 첨부 파일 인쇄를 지원합니다. 특정 유형의 첨부 파일(예: pdf 파일)만 인쇄하려면 다음 VBA 코드를 적용하세요.
VBA 코드 2: 이메일 도착 시 지정된 유형의 첨부 파일 자동 인쇄
Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
Dim xFS As FileSystemObject
Dim xTempFolder As String
Dim xAtt As Attachment
Dim xShell As Object
Dim xFolder As Object, xFolderItem As Object
Dim xFileType As String, xFileName As String
On Error GoTo xError
If Item.Attachments.Count = 0 Then Exit Sub
Set xFS = New FileSystemObject
xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
If Not xFS.FolderExists(xTempFolder) Then
MkDir (xTempFolder)
End If
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.NameSpace(0)
For Each xAtt In Item.Attachments
If IsEmbeddedAttachment(xAtt) = False Then
xFileName = xAtt.FileName
xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
xFileName = xTempFolder & "\" & xFileName
Select Case xFileType
Case "pdf" 'change "pdf" to the file extension you want to print
xAtt.SaveAsFile (xFileName)
Set xFolderItem = xFolder.ParseName(xFileName)
xFolderItem.InvokeVerbEx ("print")
End Select
End If
Next xAtt
Set xFS = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
Set xShell = Nothing
xError:
If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
Err.Clear
End If
Exit Sub
End Sub
Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
xHtml = xItem.HTMLBody
xID = "cid:" & xCid
If InStr(xHtml, xID) > 0 Then
IsEmbeddedAttachment = True
End If
End If
End Function
참고 사항:
3. Tools > References를 클릭하세요. 나타나는 References – Project1 대화 상자에서 Microsoft Scripting Runtime 박스를 선택하고 OK 버튼을 클릭하세요.

4. 코드를 저장하고 Alt + Q 키를 눌러 Microsoft Visual Basic for Applications 창을 닫습니다.
참고: Outlook에서 Enable all macros 옵션이 활성화되어 있는지 확인하세요. 아래 단계를 따라 이 옵션을 확인할 수 있습니다.

2단계: 스크립트를 사용하는 규칙 만들기
Outlook에 VBA 스크립트를 추가한 후에는 특정 조건에 따라 스크립트를 사용하는 규칙을 만들어야 합니다.
1. 홈 탭으로 이동하여 Rules > Manage Rules & Alerts를 클릭하세요.

2. Rules and Alerts 대화 상자에서 New Rule 버튼을 클릭하여 규칙을 만듭니다.
팁: 여러 이메일 계정을 Outlook에 추가했다면, 규칙을 적용할 폴더를 Apply changes to this folder 드롭다운 목록에서 지정하세요. 그렇지 않으면 현재 선택된 이메일 계정의 받은 편지함에 적용됩니다.

3. 첫 번째 Rules Wizard 대화 상자에서 Step 1 박스에서 Apply rule on messages I receive를 선택하고 Next를 클릭하세요.

4. 두 번째 Rules Wizard 대화 상자에서 다음과 같이 해야 합니다:

5. 세 번째 Rules Wizard 대화 상자에서 다음과 같이 구성해야 합니다.

팁: Rules Wizard에서 “run a script” 옵션이 누락된 경우, 이 문서에 언급된 방법을 따라 표시할 수 있습니다: restore missing Run A Script option in Outlook rule.
6. 그런 다음 예외를 묻는 또 다른 Rules Wizard가 나타납니다. 필요한 경우 예외를 선택하거나, 그렇지 않으면 아무 것도 선택하지 않고 Next 버튼을 클릭하세요.

7. 마지막 Rules Wizard에서 규칙의 이름을 지정하고 Finish 버튼을 클릭하세요.

8. 그러면 Rules and Alerts 대화 상자로 돌아가며, 방금 생성한 규칙이 목록에 표시됩니다. OK 버튼을 클릭하여 전체 설정을 완료하세요.

이제부터 특정 발신자로부터 이메일이 도착하면 첨부 파일이 자동으로 인쇄됩니다.
관련 기사
Outlook에서 한 개 또는 선택한 이메일의 첨부 파일만 인쇄하기
Outlook에서 이메일을 인쇄할 수 있지만, Outlook에서 한 개 또는 선택한 이메일의 첨부 파일만 인쇄해 본 적이 있습니까? 이 기사는 이러한 작업을 해결하는 방법을 소개합니다.
Outlook에서 이메일의 메시지 헤더만 인쇄하기
Outlook에서 이메일을 인쇄하면 이메일의 메시지 헤더와 본문이 모두 인쇄됩니다. 그러나 특별한 경우 주제, 발신자, 수신자 등이 포함된 메시지 헤더만 인쇄해야 할 수 있습니다. 이 기사에서는 이를 수행하는 두 가지 솔루션을 소개합니다.
Outlook에서 지정된/사용자 정의 날짜 범위의 캘린더 인쇄하기
일반적으로 Outlook에서 월별 보기로 캘린더를 인쇄하면 현재 선택된 날짜가 포함된 월이 자동으로 선택됩니다. 하지만 3개월, 반년 등과 같은 사용자 정의 날짜 범위 내의 캘린더를 인쇄해야 할 수도 있습니다. 이 기사에서는 이를 위한 솔루션을 소개합니다.
Outlook에서 사진이 포함된 연락처 인쇄하기
일반적으로 Outlook에서 연락처를 인쇄할 때 연락처의 사진은 인쇄되지 않습니다. 하지만 때로는 사진이 포함된 연락처를 인쇄하는 것이 더 효과적일 수 있습니다. 이 기사에서는 이를 수행하는 몇 가지 방법을 소개합니다.
Outlook에서 이메일의 일부만 인쇄하기
이메일 메시지를 받았는데 전체 메시지가 아닌 이메일 내용의 일부만 인쇄해야 하는 경우 어떻게 하시겠습니까? 실제로 Firefox 및 Internet Explorer와 같은 인터넷 브라우저의 도움을 받아 Outlook에서 이 작업을 수행할 수 있습니다. 여기에서는 인터넷 브라우저를 예로 들어 설명하겠습니다. 다음 튜토리얼을 참조하세요.
최고의 오피스 생산성 도구
속보: Kutools for Outlook 무료 버전 출시!
100개 이상의 놀라운 기능을 갖춘 완전히 새로워진 Kutools for Outlook을 경험해 보세요! 지금 다운로드하세요!
🤖 Kutools AI : 첨단 AI 기술을 활용하여 이메일 회신, 요약, 최적화, 확장, 번역, 작성까지 어떤 작업도 손쉽게 처리합니다.
📧 이메일 자동화: 자동 응답(POP 및 IMAP 지원) / 이메일 예약 발송 / 메일 발송 시 규칙에 따라 자동 참조/숨은 참조 / 고급 규칙 기반 자동 전달 / 자동 인사말 추가 / 여러 수신자 이메일을 개별 이메일로 자동 분할 ...
📨 이메일 관리: 이메일 회수 / 제목 등으로 스팸 이메일 차단 / 중복된 이메일 삭제 / 고급 검색 / 폴더 정리 ...
📁 첨부 파일 Pro: 일괄 저장 / 일괄 분리 / 일괄 압축 / 자동 저장 / 자동 분리 / 자동 압축 ...
🌟 인터페이스 매직: 😊더 예쁘고 멋진 이모지 / 중요한 이메일 도착 시 알림 / 종료 대신 Outlook 최소화 ...
👍 원클릭 편의 기능: 모두 회신(첨부 파일 포함) / 피싱 방지 이메일 / 🕘보낸 사람의 시간대 표시 ...
👩🏼🤝👩🏻 연락처 & 캘린더: 선택한 이메일에서 연락처 일괄 추가 / 연락처 그룹을 개별 그룹으로 분리 / 생일 알림 제거 ...
원하는 언어로 Kutools를 사용할 수 있습니다 – 영어, 스페인어, 독일어, 프랑스어, 중국어 등40개 이상의 언어 지원!
한 번의 클릭으로 Kutools for Outlook을 즉시 활성화하세요. 기다리지 말고, 지금 다운로드하여 효율성을 높이세요!

