08. november 2006 - 20:26Der er
47 kommentarer og 1 løsning
automatisk gemning af e-mailadresser i outlook 2003
Er det muligt at lave det sådan i outlook 2003 (DK) at programmet selv automatisk tilføjer afsenderadresserne på mine indkommende mails til adressekartoteket
Nå da - nu har jeg lavet det meste til 'NewMailEx' eventet. Måske kan dette alligevel bruges.
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) Dim mai As Object Dim intInitial As Integer Dim intFinal As Integer Dim strEntryId As String Dim intLength As Integer
intInitial = 1 intLength = Len(EntryIDCollection) intFinal = InStr(intInitial, EntryIDCollection, ",") Do While intFinal <> 0 strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intFinal - intInitial)) Set mai = Application.Session.GetItemFromID(strEntryId) addContactFromSender mai intInitial = intFinal + 1 intFinal = InStr(intInitial, EntryIDCollection, ",") Loop strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength - intInitial) + 1) Set mai = Application.Session.GetItemFromID(strEntryId) addContactFromSender mai End Sub
Private Function isContact(ByVal email As String) Dim NS As NameSpace Dim fldr As MAPIFolder Dim cont As ContactItem Set NS = Application.GetNamespace("MAPI") Set fldr = NS.GetDefaultFolder(olFolderContacts) isContact = False Dim idx As Integer For idx = 1 To fldr.Items.Count Set cont = fldr.Items.item(idx) If email = cont.Email1Address Or _ email = cont.Email2Address Or _ email = cont.Email3Address Then isContact = True Next idx End Function
Private Sub ShowSender(ByVal item As mailItem) MsgBox item.Subject & " from (" & item.SenderEmailAddress & ")" End Sub
Private Sub addContactFromSender(ByVal mail As mailItem) If (MsgBox("Tilføj " & mail.SenderEmailAddress & " til Kontakter?", vbQuestion, "Bekræft ...") = vbYes) Then If isContact(mail.SenderEmailAddress) Then Return Dim myItem As ContactItem Set myItem = Application.CreateItem(olContactItem) myItem.Email1Address = mail.SenderEmailAddress If (mail.SenderName <> "") Then myItem.FullName = mail.SenderName End If End Sub
det er ikke for at være ubehøvlet eller noget, men jeg afviser svaret i første omgang, så er der måske lidt flere der kikker med - du skal nok få dine point alligevel, hvis det viser sig at det kommer op at køre
Nu er den der (håber jeg). Jeg har testet denne udgave og har oprettet en kotakt med den.
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) Dim mai As Object Dim intInitial As Integer Dim intFinal As Integer Dim strEntryId As String Dim intLength As Integer
intInitial = 1 intLength = Len(EntryIDCollection) intFinal = InStr(intInitial, EntryIDCollection, ",") Do While intFinal <> 0 strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intFinal - intInitial)) Set mai = Application.Session.GetItemFromID(strEntryId) addContactFromSender mai intInitial = intFinal + 1 intFinal = InStr(intInitial, EntryIDCollection, ",") Loop strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength - intInitial) + 1) Set mai = Application.Session.GetItemFromID(strEntryId) addContactFromSender mai End Sub
Private Function isContact(ByVal email As String, fldr As MAPIFolder) Dim cont As ContactItem isContact = False Dim idx As Integer For idx = 1 To fldr.Items.Count Set cont = fldr.Items.item(idx) If email = cont.Email1Address Or _ email = cont.Email2Address Or _ email = cont.Email3Address Then isContact = True Next idx End Function
Private Sub ShowSender(ByVal item As mailItem) MsgBox item.Subject & " from (" & item.SenderEmailAddress & ")" End Sub
Private Function askAdd(ByVal mail As mailItem) As Boolean askAdd = (MsgBox("Tilføj " & mail.SenderEmailAddress & " til Kontakter?", vbYesNo + vbQuestion, "Bekræft ...") = vbYes) End Function
Private Sub addContactFromSender(ByVal mail As mailItem) Dim NS As NameSpace Dim fldr As MAPIFolder Dim found As Boolean Set NS = Application.GetNamespace("MAPI") Set fldr = NS.GetDefaultFolder(olFolderContacts) found = isContact(mail.SenderEmailAddress, fldr) If Not found And askAdd(mail) Then Dim myItem As ContactItem Set myItem = fldr.Items.Add(olContactItem) myItem.Email1Address = mail.SenderEmailAddress If (mail.SenderName <> "") Then myItem.FullName = mail.SenderName myItem.Display End If End Sub
Læg lige den lange tekst ind igen, sådan som den skal være, uden at jeg skal lave nogle tilføjleser i den. hvis jeg ikke kan få outlook igang igen, lukker jeg
"Tålmodighed er en dyd" som en gammel programmør jeg kendte sagde. Man skal beside en stædig tålmodighed for at få computere til at makke ret. Især når man vil programmere dem. :-P
Jeg er sikker på at den ikke gemmer det på min computer.
10 Minutter mere, så gider jeg ikke mere, og opgiver det
Når jeg går ind og skal lave den står der over til venstre VBAprojekt 1, den dobbelklikker jeg på, så kommer jeg til microsoft outlook, den har en en undermappe der hedder thissession, den klikker jeg på.
Jeg markerer hele teksten i boksen, og så skifter det i vinduet foroven til general (før var det application)
Så sætter jeg den nye tekst ind: I vinduet over til højre står der addcontact for sender.
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) Dim mai As Object Dim intInitial As Integer Dim intFinal As Integer Dim strEntryId As String Dim intLength As Integer
intInitial = 1 intLength = Len(EntryIDCollection) intFinal = InStr(intInitial, EntryIDCollection, ",") Do While intFinal <> 0 strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intFinal - intInitial)) Set mai = Application.Session.GetItemFromID(strEntryId) addContactFromSender mai intInitial = intFinal + 1 intFinal = InStr(intInitial, EntryIDCollection, ",") Loop strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength - intInitial) + 1) Set mai = Application.Session.GetItemFromID(strEntryId) addContactFromSender mai End Sub
Private Function isContact(ByVal email As String, fldr As MAPIFolder) Dim cont As ContactItem isContact = False Dim idx As Integer For idx = 1 To fldr.Items.Count Set cont = fldr.Items.item(idx) If email = cont.Email1Address Or _ email = cont.Email2Address Or _ email = cont.Email3Address Then isContact = True Next idx End Function
Private Sub ShowSender(ByVal item As MailItem) MsgBox item.Subject & " from (" & item.SenderEmailAddress & ")" End Sub
Private Function askAdd(ByVal mail As MailItem) As Boolean askAdd = (MsgBox("Tilføj " & mail.SenderEmailAddress & " til Kontakter?", vbYesNo + vbQuestion, "Bekræft ...") = vbYes) End Function
Private Sub addContactFromSender(ByVal mail As MailItem) Dim NS As NameSpace Dim fldr As MAPIFolder Dim found As Boolean Set NS = Application.GetNamespace("MAPI") Set fldr = NS.GetDefaultFolder(olFolderContacts) found = isContact(mail.SenderEmailAddress, fldr) If Not found And askAdd(mail) Then Dim myItem As ContactItem Set myItem = fldr.Items.Add(olContactItem) myItem.Email1Address = mail.SenderEmailAddress If (mail.SenderName <> "") Then myItem.FullName = mail.SenderName myItem.Display End If End Sub
Der burde ikke komme noget når det er fra en kontaktperson. Ér det ikke en kontaktperson: 1. Spørges om e@mail.adr skal tilføjes kontakter. 2. Den nye kontakts vindue åbnes. Man kan nu skrive evt. supplerende oplysninger og gemme eller fortryde ved at lukke.
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.