Macro quetsions

Status
Not open for further replies.

D.Moore

Senior Member
Outlook version
Outlook 2016 64 bit
Email Account
Office 365 Exchange
Hi!

I would like to ask your kind help on a VBA macro problem.

I would like to achieve the following 4 tasks:

1. When I send a message in Outlook, a form pops-up requesting to select the folder, where I want to move save/move the message instead of the Sent Items folder.
2. When the message contains my own name (typically happen when I push REPLY ALL), remove it.
3. When a message arrives with attachment, check all attachments of the message and if the name of the attachment is "ATT*.txt" or "ATT*.htm" , remove these attachments, but only these.
4. Add an extra button to the form pops-up (nr.1 point above). When this button pushed (instead of selecting a folder or cancel button), then the message is moved to the Draft folder, INSTEAD of being sent.

I was able to put together a working code, which accomplish nr. 1 and 2 task successfully, but I am unable to accomplish the nr. 3 and 4 tasks. Here is the code below.

May I ask your kind help to modify it to be able to achieve nr. 3 and 4 too?


Many thanks for your time and support,

Moore

The code:

VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "ThisOutlookSession"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
'myInspector
Option Explicit

Dim WithEvents oAppInspectors As Outlook.Inspectors
Attribute oAppInspectors.VB_VarHelpID = -1
Dim WithEvents oMailInspector As Outlook.Inspector
Attribute oMailInspector.VB_VarHelpID = -1
Dim WithEvents oOpenMail As Outlook.MailItem
Attribute oOpenMail.VB_VarHelpID = -1
Private Sub Application_Startup()
Set oAppInspectors = Application.Inspectors
End Sub

Private Sub Application_Quit()

End Sub


Private Sub oAppInspectors_NewInspector(ByVal Inspector As Inspector)

'Ha nem uj email ablakk akkor exit
If Inspector.CurrentItem.Class <> olMail Then
Exit Sub
End If

Set oOpenMail = Inspector.CurrentItem
Set oMailInspector = Inspector
End Sub

Private Sub oOpenMail_Open(Cancel As Boolean)

'Ha van saját email a To/Cc-ben akkor kiszedi !
Dim i As Integer
Dim deli As Integer
deli = 0
For i = 1 To oOpenMail.Recipients.Count
If oOpenMail.Recipients.Item(i).Name = "!" Then
deli = i
End If
Next

If deli <> 0 Then
oOpenMail.Recipients.Remove (deli)
End If

'Berakja a From mezõbe a megfelelõ emailcím
'On Error Resume Next
'oOpenMail.SentOnBehalfOfName = "Fitness Trade - Bakos András"
'oOpenMail.BCC = " "
'On Error GoTo 0
End Sub

Private Sub oOpenMail_Close(Cancel As Boolean)
Set oOpenMail = Nothing
End Sub

Private Sub Application_ItemSend(ByVal Item As Object, _
Cancel As Boolean)
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Set objNS = Application.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If TypeName(objFolder) <> "Nothing" And _
IsInDefaultStore(objFolder) Then
Set Item.SaveSentMessageFolder = objFolder
End If
Set objFolder = Nothing
Set objNS = Nothing
End Sub

Public Function IsInDefaultStore(objOL As Object) As Boolean
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objInbox As Outlook.MAPIFolder
On Error Resume Next
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Select Case objOL.Class
Case olFolder
'If objOL.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
'End If
Case olAppointment, olContact, olDistributionList, _
olJournal, olMail, olNote, olPost, olTask
If objOL.Parent.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
End If
Case Else
MsgBox "This function isn't designed to work " & _
"with " & TypeName(objOL) & _
" items and will return False.", _
, "IsInDefaultStore"
End Select
Set objApp = Nothing
Set objNS = Nothing
Set objInbox = Nothing
End Function
 
#3 would use a run a script rule or an item add macro that checked the file name with an If then statement or case.
http://www.slipstick.com/developer/processing-incoming-e-mails-with-macros/ shows how to use an itemadd macro. You'll need to count the attachments then check each name, deleting the ones that match.
Sample to remove attachments here: http://www.slipstick.com/developer/remove-attachments-from-sent-messages/

#4 - saving it should add it to drafts, so you just need to bypass the send macro when the button is pushed.
 
Thank you for your reply!

#3 - I found these samples before I made my post, but I could not combined them and work it into my working code. Since I am not a programmer, I am trying hard but no success so far...

#4 - May I ask how can I add a new button to the form, an how can I associate the save to it?

Terribly sorry to ask so amateur questions, but the reason I ask for help, as I "could not put it together".

BIG thank you and have a lovely day!

Moore
 
I'm on the road so i probably wont get to this until i get back monday (its hard to code on my tiny ultrabook).

You are using just the folder picker from what i can see - so you can't add a button to it. Does it have a cancel button? I don't think we can capture it, but the send can be cancelled using it.
 
First of all BIG, BIG Thank You for your kind help in advance, and I am happy to wait, if you can be so kind to spend your time on me.

Yes, I use folder picker, as that was the "limit" my knowledge was able to handle based on what i could understand from VBA. It do has a Cancel button, but that's needed, as when I dont want to move the message to any older, I just push cancel and the message placed as normal into the Sent Items folder, so thats why I was hoping to add an extra button. It seems than we need to do it with a self-created form or so?

The other important thing is, that I was trying to add this and the specific attachment removal (with "*" to ensure it covers all mutations of the attachment) it into my code, to ensure it is run as a VBA script, and it is not triggered by a Sent items rule, as I found that very unreliable, but it might just my assumption.

BIG BIG BIG thank you and have a lovely weekend!
 
The attachment removal will be on incoming messages, so either a rule or itemadd script. Itemadd can handle messages at a faster pace but a rule can filter out messages easier.
 
I see! I would go to Itemadd, as it can be implemented into the existing code, but I fully trust your professional advise.
 
Hi Diane, may I hope if you had a chance to have a look at it? Not to hurry you, just to kindly ask. have a lovely day!
 
Dear Diane,

I was hoping to hear from you as Easter surprise, so I keep up the hope. :)

Have a lovely holidays!

Moore
 
Sorry, I took the entire weekend off - never looked at email or forums for 48 hours - a record. :)

Try this itemadd macro - it's a combination of the macros at the two plinks i posted. It checks for the first 3 letters of ATT - it is case sensitive so if someone sends you an attachment named attachment.docx, it won't be removed but if they call it ATTACHMENT.docx, it will be removed. It could be refined to check for the extensions too.

Code:
Option Explicit
Private objNS As Outlook.NameSpace
Private WithEvents objNewMailItems As Outlook.Items
 
Private Sub Application_Startup()
 
Dim objMyInbox As Outlook.MAPIFolder
 
Set objNS = Application.GetNamespace("MAPI")
Set objMyInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objNewMailItems = objMyInbox.Items
Set objMyInbox = Nothing
End Sub

Private Sub objNewMailItems_ItemAdd(ByVal Item As Object)
  Dim myAttachments  As Attachments
  Dim lngAttachmentCount  As Long
  Dim i As Long
Set myAttachments = Item.Attachments
  lngAttachmentCount = myAttachments.Count
If lngAttachmentCount = 0 Then Exit Sub

  ' Loop through attachments until attachment count = 0.
  For i = lngAttachmentCount To 1 Step -1
  If Left(myAttachments(i).FileName, 3) = "ATT" Then
  myAttachments(i).Delete
  End If
  Next i
  Item.Save

End Sub
 
Yeah, I know how it is, when you get away feom the veryday rush. I hope you had a nice Easter?

Thank you for the code, it is amzing, BIG BIG BIG THANKS!!! Since the attachment is aways AT<different amount of zerros>, I can safely say AT000 and at000 can cover them all. Can I make it case insensitive somehow?

Also, I was tried to combine into my original code as I only can import 1 code to Outlook to execute. Could you tell me please how could I add it into my code to make it work? This vba so "foreign" for me. With other words, I fee I am an idiot...

Many many thanks,

Moore
 
Case insensitive, use:
If Left(lcase(myAttachments(i).FileName), 3) = "att" Then

This is the only itemadd macro, so you just need to merge the declarations and the app startup:
put this at the top:
Private objNS As Outlook.NameSpace
Private WithEvents objNewMailItems As Outlook.Items


This goes in the app startup:
Dim objMyInbox As Outlook.MAPIFolder
Set objNS = Application.GetNamespace("MAPI")
Set objMyInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objNewMailItems = objMyInbox.Items
Set objMyInbox = Nothing
 
Dear Diane,

Big big thank you for your reply.

Unfortunately, thanks to Murphy's law , my computer broke down, so I need to wait for the replacement. They told me it takes between 1-3 weeks.

As soon as I get it, first thing, I will try to make this work based on your instruction!

In the meantime I was trying to to do what you had been told me in your last post, and merge all the codes into one loadable. In paper it looks like this, please correct me if I am wrong:

Code:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "ThisOutlookSession"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
'myInspector
Option Explicit

Dim WithEvents oAppInspectors As Outlook.Inspectors
Attribute oAppInspectors.VB_VarHelpID = -1
Dim WithEvents oMailInspector As Outlook.Inspector
Attribute oMailInspector.VB_VarHelpID = -1
Dim WithEvents oOpenMail As Outlook.MailItem
Attribute oOpenMail.VB_VarHelpID = -1
Private Sub Application_Startup()
Set oAppInspectors = Application.Inspectors
End Sub

Private Sub Application_Quit()

End Sub

Private Sub oAppInspectors_NewInspector(ByVal Inspector As Inspector)

If Inspector.CurrentItem.Class <> olMail Then
Exit Sub
End If

Set oOpenMail = Inspector.CurrentItem
Set oMailInspector = Inspector
End Sub

Private Sub oOpenMail_Open(Cancel As Boolean)

Dim i As Integer
Dim deli As Integer
deli = 0
For i = 1 To oOpenMail.Recipients.Count
If oOpenMail.Recipients.Item(i).Name = "!" Then
deli = i
End If
Next

If deli <> 0 Then
oOpenMail.Recipients.Remove (deli)
End If

'On Error Resume Next
'oOpenMail.SentOnBehalfOfName = "!!"
'oOpenMail.BCC = " "
'On Error GoTo 0
End Sub

Private Sub oOpenMail_Close(Cancel As Boolean)
Set oOpenMail = Nothing
End Sub

Private Sub Application_ItemSend(ByVal Item As Object, _
Cancel As Boolean)
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Set objNS = Application.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If TypeName(objFolder) <> "Nothing" And _
IsInDefaultStore(objFolder) Then
Set Item.SaveSentMessageFolder = objFolder
End If
Set objFolder = Nothing
Set objNS = Nothing
End Sub

Public Function IsInDefaultStore(objOL As Object) As Boolean
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objInbox As Outlook.MAPIFolder
On Error Resume Next
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Select Case objOL.Class
Case olFolder
'If objOL.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
'End If
Case olAppointment, olContact, olDistributionList, _
olJournal, olMail, olNote, olPost, olTask
If objOL.Parent.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
End If
Case Else
MsgBox "This function isn't designed to work " & _
"with " & TypeName(objOL) & _
" items and will return False.", _
, "IsInDefaultStore"
End Select
Set objApp = Nothing
Set objNS = Nothing
Set objInbox = Nothing
End Function

Option Explicit
Private objNS As Outlook.NameSpace
Private WithEvents objNewMailItems As Outlook.Items

Private Sub Application_Startup()
Dim objMyInbox As Outlook.MAPIFolder
Set objNS = Application.GetNamespace("MAPI")
Set objMyInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objNewMailItems = objMyInbox.Items
Set objMyInbox = NothingDim objMyInbox As Outlook.MAPIFolder
End Sub

Private Sub objNewMailItems_ItemAdd(ByVal Item As Object)
  Dim myAttachments  As Attachments
  Dim lngAttachmentCount  As Long
  Dim i As Long
Set myAttachments = Item.Attachments
  lngAttachmentCount = myAttachments.Count
If lngAttachmentCount = 0 Then Exit Sub

  ' Loop through attachments until attachment count = 0.
  For i = lngAttachmentCount To 1 Step -1
  If Left(lcase(myAttachments(i).FileName), 3) = "att" Then 
  myAttachments(i).Delete
  End If
  Next i
  Item.Save
End Sub

So, does it look all good? My target is to save it as: "ThisOutlookSession.cls" and load into my outlook VBA as the major script as soon as I get my computer repaired.

BIG BIG BIG BIG Thank you,

Moore
 
you have this:
Private Sub Application_Startup()
Set oAppInspectors = Application.Inspectors
End Sub


it needs to be

Private Sub Application_Startup()
Set oAppInspectors = Application.Inspectors
Dim objMyInbox As Outlook.MAPIFolder
Set objNS = Application.GetNamespace("MAPI")
Set objMyInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objNewMailItems = objMyInbox.Items
Set objMyInbox = Nothing
End Sub
 
Dear Diane,

I did the correction:

Code:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "ThisOutlookSession"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
'myInspector
Option Explicit

Dim WithEvents oAppInspectors As Outlook.Inspectors
Attribute oAppInspectors.VB_VarHelpID = -1
Dim WithEvents oMailInspector As Outlook.Inspector
Attribute oMailInspector.VB_VarHelpID = -1
Dim WithEvents oOpenMail As Outlook.MailItem
Attribute oOpenMail.VB_VarHelpID = -1
Private Sub Application_Startup()
Set oAppInspectors = Application.Inspectors
Dim objMyInbox As Outlook.MAPIFolder
Set objNS = Application.GetNamespace("MAPI")
Set objMyInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objNewMailItems = objMyInbox.Items
Set objMyInbox = Nothing
End Sub

Private Sub Application_Quit()

End Sub

Private Sub oAppInspectors_NewInspector(ByVal Inspector As Inspector)

If Inspector.CurrentItem.Class <> olMail Then
Exit Sub
End If

Set oOpenMail = Inspector.CurrentItem
Set oMailInspector = Inspector
End Sub

Private Sub oOpenMail_Open(Cancel As Boolean)

Dim i As Integer
Dim deli As Integer
deli = 0
For i = 1 To oOpenMail.Recipients.Count
If oOpenMail.Recipients.Item(i).Name = "!" Then
deli = i
End If
Next

If deli <> 0 Then
oOpenMail.Recipients.Remove (deli)
End If

'On Error Resume Next
'oOpenMail.SentOnBehalfOfName = "!!"
'oOpenMail.BCC = " "
'On Error GoTo 0
End Sub

Private Sub oOpenMail_Close(Cancel As Boolean)
Set oOpenMail = Nothing
End Sub

Private Sub Application_ItemSend(ByVal Item As Object, _
Cancel As Boolean)
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Set objNS = Application.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If TypeName(objFolder) <> "Nothing" And _
IsInDefaultStore(objFolder) Then
Set Item.SaveSentMessageFolder = objFolder
End If
Set objFolder = Nothing
Set objNS = Nothing
End Sub

Public Function IsInDefaultStore(objOL As Object) As Boolean
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objInbox As Outlook.MAPIFolder
On Error Resume Next
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Select Case objOL.Class
Case olFolder
'If objOL.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
'End If
Case olAppointment, olContact, olDistributionList, _
olJournal, olMail, olNote, olPost, olTask
If objOL.Parent.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
End If
Case Else
MsgBox "This function isn't designed to work " & _
"with " & TypeName(objOL) & _
" items and will return False.", _
, "IsInDefaultStore"
End Select
Set objApp = Nothing
Set objNS = Nothing
Set objInbox = Nothing
End Function

Option Explicit
Private objNS As Outlook.NameSpace
Private WithEvents objNewMailItems As Outlook.Items

Private Sub Application_Startup()
Dim objMyInbox As Outlook.MAPIFolder
Set objNS = Application.GetNamespace("MAPI")
Set objMyInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objNewMailItems = objMyInbox.Items
Set objMyInbox = NothingDim objMyInbox As Outlook.MAPIFolder
End Sub

Private Sub objNewMailItems_ItemAdd(ByVal Item As Object)
  Dim myAttachments  As Attachments
  Dim lngAttachmentCount  As Long
  Dim i As Long
Set myAttachments = Item.Attachments
  lngAttachmentCount = myAttachments.Count
If lngAttachmentCount = 0 Then Exit Sub

  ' Loop through attachments until attachment count = 0.
  For i = lngAttachmentCount To 1 Step -1
  If Left(lcase(myAttachments(i).FileName), 3) = "att" Then
  myAttachments(i).Delete
  End If
  Next i
  Item.Save
End Sub

I am saving this, and trying out, and report you the result.

BIG BIG THANK YOU!

Moore
 
Dear Diane,

I was able to import the code in my last post as CLS (attached to this post too ZIPed), but it fails with the following error:

0010.png
 

Attachments

  • ThisOutlookSession.zip
    1.3 KB · Views: 369
First thing I see is that option explicit and the other two lines should be at the top. I always put the application_startup macro at the top too, just under the declarations.
 
Dear Diane,

Problem is, that I am so bad in VBA, that I am lost in completely. I swear I tried, but I failed miserably. I am trying to accomplish this task only for my private use, and I do not have real programming knowledge.

I know I am asking a lot here, but would it be any chance to check the attached CLS file for me?

Many Thanks with hope,

Moore
 

Attachments

  • ThisOutlookSession.zip
    1.3 KB · Views: 387
With the macros in the proper order, it works just fine.
 

Attachments

  • macros-forum.txt
    3 KB · Views: 462
Dear Diane,

You are a magician, indeed it did not throw any error when I loaded it!

Allow me to ask 2 questions on what I am experiencing:

When the email going into the INBOX, it shows a message box:
0014.png

After I push the OK, it process the message and remove the "ATT*" attachment perfectly

BUT

1. how can I avoid this messagebox from appearing?
2. Also, when the email goes into any other subfolder (by email rule) it is not removing the "ATT*" attachment, so it seems it is only processing the Inbox. How can I process when an email arrive to an other subfolder?

Many Thanks,

Andras
 
Status
Not open for further replies.
Similar threads
Thread starter Title Forum Replies Date
X Custom icon (not from Office 365) for a macro in Outlook Outlook VBA and Custom Forms 1
X Run macro automatically when a mail appears in the sent folder Using Outlook 5
mrrobski68 Issue with Find messages in a conversation macro Outlook VBA and Custom Forms 1
G Creating Macro to scrape emails from calendar invite body Outlook VBA and Custom Forms 6
M Use Macro to change account settings Outlook VBA and Custom Forms 0
J Macro to Reply to Emails w/ Template Outlook VBA and Custom Forms 3
C Outlook - Macro to block senders domain - Macro Fix Outlook VBA and Custom Forms 1
Witzker Outlook 2019 Macro to seach in all contact Folders for marked Email Adress Outlook VBA and Custom Forms 1
S macro error 4605 Outlook VBA and Custom Forms 0
A Macro Mail Alert Using Outlook 4
J Outlook 365 Outlook Macro to Sort emails by column "Received" to view the latest email received Outlook VBA and Custom Forms 0
J Macro to send email as alias Outlook VBA and Custom Forms 0
M Outlook Macro to save as Email with a file name format : Date_Timestamp_Sender initial_Email subject Outlook VBA and Custom Forms 0
Witzker Outlook 2019 Macro GoTo user defined search folder Outlook VBA and Custom Forms 6
D Outlook 2016 Creating an outlook Macro to select and approve Outlook VBA and Custom Forms 0
Witzker Outlook 2019 Macro to send an Email Template from User Defined Contact Form Outlook VBA and Custom Forms 0
Witzker Outlook 2019 Macro to check Cursor & Focus position Outlook VBA and Custom Forms 8
V Macro to mark email with a Category Outlook VBA and Custom Forms 4
M Outlook 2019 Macro not working Outlook VBA and Custom Forms 0
S Outlook 365 Help me create a Macro to make some received emails into tasks? Outlook VBA and Custom Forms 1
Geldner Send / Receive a particular group via macro or single keypress Using Outlook 1
D Auto Remove [EXTERNAL] from subject - Issue with Macro Using Outlook 21
V Macro to count flagged messages? Using Outlook 2
sophievldn Looking for a macro that moves completed items from subfolders to other subfolder Outlook VBA and Custom Forms 7
S Outlook Macro for [Date][Subject] Using Outlook 1
E Outlook - Macro - send list of Tasks which are not finished Outlook VBA and Custom Forms 3
E Macro to block senders domain Outlook VBA and Custom Forms 1
D VBA Macro to Print and Save email to network location Outlook VBA and Custom Forms 1
N VBA Macro To Save Emails Outlook VBA and Custom Forms 1
N Line to move origEmail to subfolder within a reply macro Outlook VBA and Custom Forms 0
Witzker Outlook 2019 Macro to answer a mail with attachments Outlook VBA and Custom Forms 2
A Outlook 2016 Macro to Reply, ReplyAll, or Forward(but with composing new email) Outlook VBA and Custom Forms 0
J Macro to Insert a Calendar Outlook VBA and Custom Forms 8
W Macro to Filter Based on Latest Email Outlook VBA and Custom Forms 6
T Macro to move reply and original message to folder Outlook VBA and Custom Forms 6
D Autosort macro for items in a view Outlook VBA and Custom Forms 2
S HTML to Plain Text Macro - Help Outlook VBA and Custom Forms 1
A Macro to file emails into subfolder based on subject line Outlook VBA and Custom Forms 1
N Help creating a VBA macro with conditional formatting to change the font color of all external emails to red Outlook VBA and Custom Forms 5
S Visual indicator of a certain property or to show a macro toggle Outlook VBA and Custom Forms 2
L Modifying VBA script to delay running macro Outlook VBA and Custom Forms 3
S Macro to extract and modify links from emails Outlook VBA and Custom Forms 3
M Replyall macro with template and auto insert receptens Outlook VBA and Custom Forms 1
L Macro to add Date & Time etc to "drag to save" e-mails Outlook VBA and Custom Forms 17
S Macro for Loop through outlook unread emails Outlook VBA and Custom Forms 2
Globalforester ItemAdd Macro - multiple emails Outlook VBA and Custom Forms 3
S Macro to extract email addresses of recipients in current drafted email and put into clipboard Outlook VBA and Custom Forms 2
Witzker HowTo start a macro with an Button in OL contact form Outlook VBA and Custom Forms 12
Witzker Macro to move @domain.xx of a Spammail to Blacklist in Outlook 2019 Outlook VBA and Custom Forms 7
S Macro for other actions - Outlook 2007 Outlook VBA and Custom Forms 23

Similar threads

Back
Top