添付ファイルを削除する必要があるマクロを作成しています。私のデバッグセッションからは、うまくいくかのように見えます。ブレークポイントがヒットし、それがメッセージオブジェクトを認識している:VBA - Outlookが添付ファイルを削除していない
私はこれは少し愚かな音を知っている、しかし、奇妙なことに、私がブレークポイントを設定した場合に動作するようだ、と表現/時計を開いて、それ以外はそうではない。
私はかなり長い間このことに苦労してきました。私はどんな指導にも感謝します。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim header As String
Dim objNewMail As Outlook.MailItem
Dim Item As Object
Dim count As Integer
Dim objInbox As Outlook.Folder
Set objInbox = Outlook.Session.GetDefaultFolder(olFolderInbox)
Dim entryIDs
entryIDs = Split(EntryIDCollection, ",")
Dim i As Integer
For i = 0 To UBound(entryIDs)
Set objNewMail = Application.Session.GetItemFromID(entryIDs(i))
If objNewMail.Attachments.count > 0 Then
header = GetHeader(objNewMail)
If DoesIPMatch(header) <> True Then
DeleteMessage (objNewMail)
ElseIf IsAttachmentPDF(objNewMail) <> True Then
For count = 1 To objNewMail.Attachments.count
objNewMail.Attachments.Remove (count)
Next
End If
End If
Next
End Sub
おそらく問題はありませんが、 '(count) 'のかっこは冗長です。 'objNewMail.Attachments.Remove count'で十分です。 'count'は評価されずに値渡される必要もありません(それは余分な括弧の働きです)。それはすでに値です。 –
ありがとう!私はVBAの人ではありません(C#galの方が多いので)、私はその観察を間違いなく感謝します。 – KellyMarchewa
また、インデントが壊れている/混乱しています。 * [indententer *]の使用を検討してください - 私の[Rubberduck](https://github.com/rubberduck-vba/Rubberduck/releases)アドインには、非常に人気の高い* Smart Indenter *のポート(64ビットホストで動作)アドイン...これはC#で書かれていますが、あなたが楽しいOSSプロジェクトを探しているのであれば、;-) –