Add a string to the conditions in .Conditions.BodyOrSubject.Text

Post number 3 has been selected as the best answer.

Status
Not open for further replies.

BartH

Member
Outlook version
Outlook 2016 64 bit
Email Account
POP3
I use multiple rules that use conditions like BodyOrSubject holds "string1; string2 etc"
I can manually add a string to the BodyOrSubject conditions, but now want to do that with VBA.

The code below runs fine until "oRule.Conditions.BodyOrSubject.Add strSubject" - what would be the correct syntax there?

Code:
    strSubject = InputBox("Check this subject text... (only keep what is significant).", "Subject", Replace(Trim(GetSelectedItemSubject), ";", ""))
    If strSubject = "" Then Exit Sub
  
    Set colRules = Application.Session.DefaultStore.GetRules()
    Set oRule = colRules.Item("Spam")
  
    For Each co In colRules.Item("Spam").Conditions.BodyOrSubject.Text
        ' Debug.Print co
        If co = strSubject Then
            MsgBox strSubject & vbCr & " allready exists in this rule.", vbInformation, "Spam"
            Exit Sub
        End If
    Next co
  
    oRule.Conditions.BodyOrSubject.Add strSubject
    MsgBox strSubject & vbCr & " added to this rule.", vbInformation, "Spam"
    colRules.Save

additional function:
Code:
Function GetSelectedItemSubject() As String
    MsgTxt = ""
    Set myOlExp = Application.ActiveExplorer
    Set myOlSel = myOlExp.selection
    For x = 1 To myOlSel.Count
        If myOlSel.Item(x).Class = OlObjectClass.olMail Then
            ' For mail item, use the SenderName property.
            Set oMail = myOlSel.Item(x)
            If MsgTxt = "" Then
                MsgTxt = oMail.Subject & ";"
            Else
                MsgTxt = MsgTxt & " " & oMail.Subject & ";"
            End If
        ElseIf myOlSel.Item(x).Class = OlObjectClass.olAppointment Then
            ' For appointment item, use the Organizer property.
            Set oAppt = myOlSel.Item(x)
            If MsgTxt = "" Then
                MsgTxt = oMail.Subject & ";"
            Else
                MsgTxt = MsgTxt & " " & oMail.Subject & ";"
            End If
        Else
            ' For other items, use the property accessor to get sender ID,
            ' then get the address entry to display the sender name.
            Set oPA = myOlSel.Item(x).PropertyAccessor
            strSenderID = oPA.GetProperty(PR_SENT_REPRESENTING_ENTRYID)
            Set mySender = Application.Session.GetAddressEntryFromID(strSenderID)
            If MsgTxt = "" Then
                MsgTxt = oMail.Subject & ";"
            Else
                MsgTxt = MsgTxt & " " & oMail.Subject & ";"
            End If
        End If
    Next x
    GetSelectedItemSubject = MsgTxt
End Function
 
ThnX Diane,

Tried that, but doesn't work - type mismatch.

Then figured out
Code:
oRule.Conditions.BodyOrSubject.Text
is an array
(I could have know before, as this works:
Code:
For Each co In colRules.Item("Spam").Conditions.BodyOrSubject.Text
and
Code:
TypeName(colRules.Item("Spam").Conditions.BodyOrSubject.Text) gives String()
)

so this this altercation to the code is the solution:

Code:
    varRuleArr = oRule.Conditions.BodyOrSubject.Text
    
    ReDim Preserve varRuleArr(UBound(varRuleArr) + 1)
    varRuleArr(UBound(varRuleArr)) = strSubject
    oRule.Conditions.BodyOrSubject.Text = varRuleArr
    colRules.Save
    MsgBox strSubject & vbCr & " added to this rule.", vbInformation, "Spam"
 
Status
Not open for further replies.
Similar threads
Thread starter Title Forum Replies Date
G Add Map It button to Custom Contacts Form in Outlook Outlook VBA and Custom Forms 1
G Outlook 2021 Add Picture to Custom Contact Form Outlook VBA and Custom Forms 2
P Can't add custom field to custom Outlook form, it always adds to the Folder instead Outlook VBA and Custom Forms 2
P VBA to add email address to Outlook 365 rule Outlook VBA and Custom Forms 0
S Outlook 2019 Custom outlook Add-in using Visual Studio Outlook VBA and Custom Forms 0
G automatically choosing "add to autocorrect" option Using Outlook 0
F Want to add second email to Outlook for business use Using Outlook 4
K Add an entry to a specific calendar Using Outlook 1
F Add a category before "Send an Email When You Add an Appointment to Your Calendar" Outlook VBA and Custom Forms 0
J Want to create a button on the nav bar (module add-in) to run code Outlook VBA and Custom Forms 2
M "Attachment Detacher for Outlook" add in, does it update the server copy of the email? Using Outlook 1
J Outlook 365 Add keywords from Listbox to the message body where cursor is placed Outlook VBA and Custom Forms 0
O Add Day Number of the year for 2023-2033 Outlook VBA and Custom Forms 5
J GoDaddy migrated to Office365 - Outlook Wont Add Account Exchange Server Administration 21
F Outlook 2019 Outlook 2019 Add and Sync to New computer Comcast server Using Outlook 2
Witzker Add a text line at the end of the note field in all selected Contacts Outlook VBA and Custom Forms 7
A iCloud Outlook Add In is causing Outlook 2021 to crash and got disabled Using Outlook 10
N How to add or delete items to Move dropdown Menu Using Outlook 0
G Add contacts birthday to calendar Using Outlook 4
V How to add 'Previous Item' and 'Next Item' to the Quick Access Toolbar Using Outlook 1
Commodore Safe way to add or update holidays; Windows Notifications issue Using Outlook 8
kkqq1122 How would I add Search for attachment name Outlook VBA and Custom Forms 3
L did MS ever add way to text via Outlook Using Outlook 5
P How to add a column named categories when searching in Outlook Using Outlook 0
M add new attendee to existing meetings with VBA Outlook VBA and Custom Forms 5
N Can't create NEW GROUP and add/remove a member from existing Group in Outlook Using Outlook 1
Witzker Outlook 2019 Pls. add a Prefix for OUTLOOK 2019 here Using Outlook 1
P Add inanimate objects to meetings? Using Outlook 1
O Outlook 2010 Add delete button to the side of the message list Using Outlook 1
A "Get Add-Ins" - Which Version of Outlook to use Using Outlook 1
D Do I need Exchange Add-In? Using Outlook 6
C-S-R Manage Add-ins (Remove Wunderlist) Using Outlook 6
A iCloud add in problems Using Outlook 4
L Macro to add Date & Time etc to "drag to save" e-mails Outlook VBA and Custom Forms 17
C Looking for feedback on new Outlook Add-in Using Outlook 0
L isn't there an OL add-on that flags addressee before sending Using Outlook 3
S Add VBA save code Using Outlook 0
P Shortcut Pane - add shortcut to Office365 group mailbox Using Outlook 1
Z Add ComboBox Value to Body of Email Outlook VBA and Custom Forms 1
G How to add a folder shortcut to outlook quick access toolbar? Using Outlook 6
G Add to Outlook Contacts - Point to non-default contacts folder Using Outlook 0
M Automatically add senders first name to a greeting Outlook VBA and Custom Forms 1
C Add Form to Appointments Received, Automatically Outlook VBA and Custom Forms 6
O Outlook tasks - Add text column with multiple lines Using Outlook 3
W April 2020 Office 365 Update - Add-Ons fail after Office 365 Update Using Outlook 6
Z Task Filter Not Working When I add too many criteria Using Outlook 0
D Add date next to day name in Outlook Today calendar view Using Outlook 1
D iCloud Add-in not working in Outlook 2013 and Outlook 2016 After Windows Upgrade & iCloud Upgrade Using Outlook 2
P Add Paste Unformatted to QAT Using Outlook 1
M Ignore slow add-ins Using Outlook 0

Similar threads

Back
Top