J.Zil
J.Zil

Reputation: 2449

Set Email Category

I'm trying to add a category to each email as the loop goes down:

Option Explicit

Sub SaveAttachmentsFromSelectedItemsPDF2_ForNext()

    Dim currentItem As Object
    Dim currentAttachment As Attachment
    Dim saveToFolder As String
    Dim savedFileCountPDF As Long
    
    Dim i As Long
    Dim j As Long

    saveToFolder = "c:\dev\outlookexport" 'change the path accordingly

    savedFileCountPDF = 0
    
    For i = 1 To ActiveExplorer.Selection.Count
        
        Set currentItem = ActiveExplorer.Selection(i)
    
        For j = 1 To currentItem.Attachments.Count
                    
            Set currentAttachment = currentItem.Attachments(j)
            
            If UCase(Right(currentAttachment.DisplayName, 5)) = UCase(".xlsx") Then
                currentAttachment.SaveAsFile saveToFolder & "\" & _
                Left(currentAttachment.DisplayName, Len(currentAttachment.DisplayName) - 5) & ".xlsx"
                savedFileCountPDF = savedFileCountPDF + 1
            End If
            
            ' If For Next does not release memory automatically then
            '  uncomment to see if this has an impact
            'Set currentAttachment = Nothing
            
        Next
        
        ' If For Next does not release memory automatically then
        '  uncomment to see if this has an impact
        'Set currentItem = Nothing
        
    Next
    
    MsgBox "Number of PDF files saved: " & savedFileCountPDF, vbInformation

End Sub

The code to set categories seems to be:

.Categories = "MyCategory"

When I add this to my code (under For i = 1...) it gives me an error:

"Unqualified reference"

How do I add a category to the emails as the loop goes down the list of selected emails?

Upvotes: 0

Views: 295

Answers (2)

Dmitry Streblechenko
Dmitry Streblechenko

Reputation: 66306

Firstly, you need to show your "with" statement. Secondly, you need to save the message afterwards (currentItem.Save).

Upvotes: 0

Eugene Astafiev
Eugene Astafiev

Reputation: 49455

You need to specify the object in the code:

For i = 1 To ActiveExplorer.Selection.Count

    Set currentItem = ActiveExplorer.Selection(i)

    currentItem.Categories = "MyCategory"
Next

Upvotes: 1

Related Questions