시간이 지남에 따라 함께 스크립트를 작성했습니다. 최근 Outlook에서 사용해야하는 플러그인이 일부 문제를 일으켰습니다. 기본적으로 플러그인을 사용하면 전자 메일이 파괴되어 특정 첨부 파일 이름으로 다시 만들어지기 때문에 두 번 묻습니다. 이 시점에서 사용자에게 다시 묻습니다. 나는 For 루프에서이 첨부 파일을 찾으면 스크립트를 건너 뛰도록 노력했다. 그러나 For 루프를 추가하면 전체 스크립트를 건너 뛰는 것처럼 보입니다. VBA에 대한 경험이 제한되어 있으므로 구문이나 사용법에 문제가있는 것으로 확신합니다. 나는 전망 및 VBA와 그 익숙하지 않다VBA Outlook Script
Private Sub Application_ItemSend _
(ByVal Item As Object, Cancel As Boolean)
Dim strMsg As String
Dim Atmt As Variant
'strMsg = Item.Class
If Item.Class = "43" Then
For Each Atmt In Item.Attachments
If VBA.Right(Atmt.FileName, 3) = ".sf" Then
GoTo NonEmailError
End If
Next Atmt
If Item.CC = "" Then
strMsg = "To recipients: " & Item.To & vbCrLf & _
"Are you sure you want to send this message?"
Else
strMsg = "To recipients: " & Item.To & vbCrLf & _
"Cc recipients: " & Item.CC & vbCrLf & _
"Bcc recipients: " & Item.BCC & vbCrLf & _
"Are you sure you want to send this message?"
End If
Else
GoTo NonEmailError
End If
' Exit Sub
' Ignore errors for now.
On Error GoTo NonEmailError
' Prompt user to fill in subject
If Item.Subject = "" Then
MsgBox "You must enter a subject.", 48, "Empty Subject"
Cancel = True
GoTo NonEmailError
End If
' Exit Sub
' Prompt user to verify E-Mails
If MsgBox(strMsg, vbYesNo + vbQuestion _
, "Send Confirmation") = vbNo Then
Cancel = True
End If
Exit Sub
NonEmailError:
' The item being sent was not an e-mail and so don't prompt the user anything
Exit Sub
End Sub
몇 가지 의견 : 1) 첨부 파일이있는 이메일과 관계없이 2 개의 프롬프트가 표시됩니까? 2) 첫 번째 프롬프트와 관련된 회선은 어느 것이고 두 번째 회의 프롬프트는 어느 것입니까? 3) Dim olMI As Outlook.MailItem --- TypeName (Item) = "MailItem"Then --- --- olMI를 설정하면 (자),'Object' 대신에'Outlook.MailItem'을 처리하는 것이 좋습니다. = Item --- '당신의 물건 --- End If'. –