28. maj 2015 - 17:18Der er
11 kommentarer og 1 løsning
Script i forbindelse med Outlook
Hej Min opgave består i at udtage et delelement i Outlooks emnelinje. Ud fra del elementet (et nummer), skal jeg hente en mailadresse og videresende mailen til denne mailadresse. Scriptet skal ligge i regnearket, hvor mailadresserne ligger. Da der er mange forskellige kontonumre, så dur metoden med at oprette en regel ikke. Alle mail ligger i roden af mailboksen, som er oprettet til dette specielle formål.
I punktform: a. Hent kontonummer i emne linjen b. Slå indehaveren op i en liste i regnearket og aflæs den dertilhørende mail adresse. c. Videresend mailen til den pågældende adresse.
Version 1'Rem Reference til Outlook via "Tools / References" Rem ============================================== Dim kontonr Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$D$1" Then Cancel = True traverserMailBoks End If
MsgBox "Gennemløb afsluttet" End Sub Private Sub traverserMailBoks() Dim OlApp, Namespace, mailObject, m As Integer, videreSendesTil As String, myForward Set OlApp = CreateObject("Outlook.Application") Set Namespace = OlApp.GetNamespace("MAPI") Set cfold = Namespace.GetDefaultFolder(olFolderInbox) antalMails = cfold.Items.Count
If antalMails > 0 Then For m = 1 To antalMails Set mailObject = cfold.Items(m) kontonr = Left(mailObject.Subject, 4) 'test If IsNumeric(kontonr) = True Then 'test videreSendesTil = findVidereSendesTil(kontonr) If videreSendesTil <> "" Then Set myForward = mailObject.Forward myForward.Recipients.Add videreSendesTil myForward.Send mailObject.UnRead = False 'hvad skal der ske med mailen efter den er videresendt? Else MsgBox "Mailadresse til kontonr.: " & CStr(kontonr) & " kunne ikke findes" End If End If Next m End If End Sub Private Function findVidereSendesTil(kontonr) Dim ræk As Integer, antalRæk As Integer antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
For ræk = 2 To antalRæk If kontonr = CStr(Range("A" & ræk)) Then findVidereSendesTil = Range("B" & ræk) Exit Function End If Next ræk
hej Supertekst Det ser rigtigt fint ud - er ved at teste det.
Når en mail er afsendt så skal den flyttes til en undermappe, der har navn efter den pågældende måned og år.
Kontonavnet består ikke kun af numeriske tal, der er et bogstav + nogle tal.
Hvordan sætter jeg en path, således at jeg i forbindelse med test kan få koden til at se i en undermappe, når den skal tjekke for ubehandlede mails.
Det undre mig, at når den løber mappen igennem for mails, så starter den med den ældste først, hvorfor det? m har da værdie 1. så vil jeg da forvente at den starter forfra. Hvad er årsagen?
Rem Version 2 Rem Reference til Outlook via "Tools / References" Rem ============================================== Dim arkivMappe As Outlook.Folder Dim kontonr Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$D$1" Then Cancel = True traverserMailBoks End If
MsgBox "Gennemløb afsluttet" End Sub Private Sub traverserMailBoks() Dim OlApp, Namespace, mailObject, m As Integer, videreSendesTil As String, myForward Set OlApp = CreateObject("Outlook.Application") Set Namespace = OlApp.GetNamespace("MAPI") Set cfold = Namespace.GetDefaultFolder(olFolderInbox) antalMails = cfold.Items.Count
If antalMails > 0 Then For m = antalMails To 1 Step -1 Set mailObject = cfold.Items(m) kontonr = Left(mailObject.Subject, 4) 'test If IsNumeric(kontonr) = True Then 'test videreSendesTil = findVidereSendesTil(kontonr) If videreSendesTil <> "" Then Set myForward = mailObject.Forward myForward.Recipients.Add videreSendesTil myForward.Send 'hvad skal der ske med mailen efter den er videresendt? Flyttes til undermappe Set arkivMappe = cfold.Folders("MAJ-2015") 'test mailObject.Move arkivMappe Else MsgBox "Mailadresse til kontonr.: " & CStr(kontonr) & " kunne ikke findes" End If End If Next m End If End Sub Private Function findVidereSendesTil(kontonr) Dim ræk As Integer, antalRæk As Integer antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
For ræk = 2 To antalRæk If kontonr = CStr(Range("A" & ræk)) Then findVidereSendesTil = Range("B" & ræk) Exit Function End If Next ræk
Super - Det ser ud til at virke perfekt, når jeg tjekker mails i min egen inboks. Den inbox, som jeg skal tjekke er en delt mailbox. Hvordan får jeg sat stien til den?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.