Köra ett Script från en regel – Exempel

Problem:

Jag vill kunna köra ett script från en regel i Outlook

 

Lösning:

 

– Starta upp Outlook

– Klicka på Visual Basic Editor under Tools/Macros i menyn

– Dubbelklicka på ThisOutlookSession

– Kopiera scriptet nedan och klistra in det i fönstret som öppnades när du dubbelklickade på ThisOutlookSession

– Stäng Visual Basic Editorn och återgå till Outlook

– Gå in på Tools/Rules and Alerts

– Klicka på New Rule

– Välj Start from blank rule, se till att ”Check messages when they arrive” är iklickat och klicka ”Next”

– Klicka i ”From People or Distribution List”

– Klicka på “People or Distribution List”  I det under fönstret

– I fältet ”From” längst ned skriver du in adress som mailen kommer ifrån. Klicka sedan ”Next”.

– Bocka i ”Run a script”

– Klicka på “a script” i det under fönstret och välj ”Project1.ThisOutlookSession.Save_Gas_Matters_Attach” och klicka ”Ok” Klicka sedan Next

– Klicka Finish

 

Förutsättning för att ett Script skall fungera att köra från en regel:

 

A macro for use with a rule must be a Public Sub with a MailItem or MeetingItem argument, e.g.:

Public Sub SaveAttachmentsToFolder(objMail as MailItem)
    ‘ code to save attachments in the objMail message
End Sub

 

Exempel Script

 

Script för att automatiskt spara attachments

 

Sub Save_Gas_Matters_Attach(objMsg As MailItem)

Dim myItems, myItem, myAttachments, myAttachment As Object

Dim myOrt As String

Dim myOlApp As New Outlook.Application

myOrt = “C:” ‘destination folder

On Error GoTo ErrHandler

Set myItem = objMsg

Set myAttachments = myItem.Attachments

‘if there are some…

If myAttachments.Count > 0 Then

‘add remark to message text

myItem.Body = myItem.Body & vbCrLf & “Saved Attachment(s):” & vbCrLf

‘for all attachments do…

For i = 1 To myAttachments.Count

‘save them to destination

myAttachments(i).SaveAsFile myOrt & myAttachments(i).DisplayName

‘add name and destination to message text

myItem.Body = myItem.Body & “File: “ & myOrt & myAttachments(i).DisplayName & vbCrLf

Next i

End If

GoTo SkipErrorHandlingBit

ErrHandler:

‘ Error has occured, put a message in the email text.

myItem.Body = myItem.Body & vbCrLf & “File has not been saved!” & vbCrLf

SkipErrorHandlingBit:

‘save item without attachments

myItem.Save

‘free variables

Set myItem = Nothing

Set myAttachments = Nothing

End Sub

Sub Reportave()

Dim oApp As Application

Dim oNS As NameSpace

Dim oMsg As Object

Dim oAttachments As Outlook.Attachments

Dim lngCount As Single

Set oApp = New Outlook.Application

Set oNS = oApp.GetNamespace(“MAPI”)

Set oFolder = oNS.GetDefaultFolder(olFolderInbox)

For Each oMsg In
oFolder.Items

lngCount = oMsg.Attachments.Count

If lngCount > 0 Then

For i = lngCount To 1 Step -1

‘ Save attachment before deleting

tmpfile = oMsg.Attachments.Item(i)

tmpfile = “c:” & tmpfile

tmpsender = oMsg.SenderName

tmpmessage = MsgBox(“Guardando archivo “ & Trim(tmpfile) & “enviado por “ & tmpsender, vbOKOnly)

oMsg.Attachments.Item(i).SaveAsFile tmpfile

tmpmessage = MsgBox(“Eliminando adjunto “ & Trim(tmpfile), vbOKOnly)

oMsg.Attachments.Remove i

Next i

End If

Next

End Sub

Comments

Leave a Reply

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)