10. maj 2002 - 10:26Der er
27 kommentarer og 1 løsning
Macro/Script i Outlook
Hejsa.
Hvad er forskellen på en Makro og et script i Outlook 2000?
Jeg har lavet en macro jeg gerne vil have kørt hver gang jeg får en speciel type email.
Jeg har forsøgt at sætte en 'Rule' op til at genkende mailen og vil så have den til at starte mit MakroScript, men der er ingen scripts i Scripts-listen?
Kan jeg på nogen måde lægge mine makroer ind i scripts listen?
Som jeg lige ser forskellen, så afvikles scripts i en scripteditor, mens makroer afvikles i Vba-editoren. Måske det er nemmest for dig at lave det som vba ??
Ehmm.. NewMail kører godt nok, men kan jeg ikke få den til at markere den nye mail der er kommet. Den arbejder bare på den mail der er markeret?!?
Synes godt om
Slettet bruger
13. maj 2002 - 11:09#8
Du kan bruge Items.Count for at finde den sidste mail i din Inbox
------------------
Private Sub Application_NewMail()
Set myOlApp = Application Set myNamespace = myOlApp.GetNamespace("MAPI") Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox) Set myItem = myFolder.Items(myFolder.Items.Count)
Hmm... kan ikke helt få det til at virke. Den tager stadig bare den mail der er markeret og åbner op i et nyt vindue. Det skal den ikke, den skal bare markere/bruge den mail der lige er kommet. Ikke åbne den.
Synes godt om
Slettet bruger
15. maj 2002 - 16:12#10
Det er (vist nok) ikke muligt bare at markere en MailItem. Hvad skal den gøre efter den har fundet den nyeste mail ?
Synes godt om
Slettet bruger
15. maj 2002 - 16:50#11
Ok prøv at tilføje dette... Erstat Set myItem = myFolder.Items(myFolder.Items.Count) med Set myItem = myFolder.Items
------------- ' Sorterer efter modtagelsestidspunkt myItems.Sort "[ReceivedTime]", False ' Viser modtagelsestidspunkt for den senest modtaget MsgBox myItems(myItems.Count).ReceivedTime -------------
Virker stadig ikke. Kunne man løse problemet ved at læse indholdet af mails i indbakken og så køre sin makro på allesammen. Man kunne så hver gang en mail er blevet kørt igennem makroen smide den over i en anden mappe?
Synes godt om
Slettet bruger
16. maj 2002 - 10:28#18
1. Har du mulighed for at lade mig se din makro som den ser ud lige nu ? 2. Hvad er det du gerne vil opnå med makroen ? Skal den bare flytte den nyeste mail over i en anden mappe ? 3. Du siger at MsgBox ikke kommer op. Udbliver den helt, eller kommer den op uden tekst i ? 4. Er det Office 97, 2000, eller XP ?
1. Here we go. Private Sub Application_NewMail() Dim oApp As New Outlook.Application Dim oExp As Outlook.Explorer Dim oSel As Outlook.Selection Dim oItem As Object
Set oExp = oApp.ActiveExplorer Set oSel = oExp.Selection
For i = 1 To oSel.Count Set oItem = oSel.Item(i) Dim strMessageClass As String Dim oMailItem As Outlook.MailItem strMessageClass = oItem.MessageClass If (strMessageClass = "IPM.Note") Then Set oMailItem = oItem akt = Mid(oMailItem.Subject, 1, 5) If akt = "START" Then Behandling (oMailItem.Subject) End If Else MsgBox "Fejl: Dette er ikke en email." End If Next i End Sub
2. Den står og kører en makro på hver email der kommer ind. Problemet var jo så at hvis en anden email var markeret, så kørte den makroen på den. Idéen var så at man kunne lade den flytte de emails den havde haft gang i over i en ny mappe, som f.eks hed "Done". Dermed var der jo kun den email i indbakken som den skulle kigge på.
3. Den udebliver.
4. Outlook/Office 2002. Troede faktisk det var 2000 som jeg skrev længere oppe.
Synes godt om
Slettet bruger
17. maj 2002 - 11:09#20
Det virker som om den kun tester de items der er markeret i det aktive vindue. Skal den ikke teste alle mails i den pågældende mappe , uanset om de er markeret eller ej ?
Jeg tænkte bare at den skulle tage dem én af gangen når de kom, men de idé er bedre. Hvordan får jeg den til at tage alle mails. De skal vel ind i et array. Man kunne så flytte alle mailsne til Done mappen når de er kørt. (Smider gerne flere point oveni.)
Synes godt om
Slettet bruger
18. maj 2002 - 21:32#22
Prøv denne her... Den kører hver gang du modtager en ny mail. Den kigger på alle mails i din Inbox, og flytter dem til en mappe efter behandling. ---------------------
Private Sub Application_NewMail()
On Error Resume Next
Dim taeller As Integer
Set myOlApp = GetObject(, "Outlook.Application") Set myNameSpace = myOlApp.GetNamespace("MAPI") Set myPersonalFolder = myNameSpace.Folders(1) Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox) Set myTestFolder = myPersonalFolder.Folders("Test")
Set myFolder = myInbox
For taeller = 1 To myFolder.Items.Count Set myMessage = myFolder.Items(taeller) If myMessage.Subject = "START" Then 'Behandling (myMessage) myMessage.Move myTestFolder taeller = 1 End If Next
End Sub
------------------
Du må selv lige rette navnene på de enkelte mapper. Min mappe "Test", ligger under min "Personal Folders"
Hmm.. Den flytter ikke mailen til den folder. Jeg har oprettet en folder der hedder "Test" i min Personlige Mappe. Selve mailsystemet er på dansk, kan det have noget at gøre med det? Er det lettere at flytte den ned i et underdir. i Indbakken?
Synes godt om
Slettet bruger
23. maj 2002 - 22:42#24
Hvis den skal flyttes til et underdirectory "Test", i din Inbox skal du erstatte
Set myTestFolder = myPersonalFolder.Folders("Test") med Set myTestFolder = myInbox.Folders("Test")
Men jeg skal så lave en SaveAs på det konkrete mailitem, hvilket også fungerer fint nok bortset fra, at Outlook beder systemet bekræfte at det er ok at der opnås adgang til Outlook. Det er selvfølgelig en sikkerhedsforanstaltning, men samtidig et problem da dette program skal stå og passe sig selv. Kan det omgås?? Opretter gerne spørgsmålet... Jeg mener ikke Office 97 bruger dette, men vil egentlig helst undgå at bruge den.
torben
Synes godt om
Ny brugerNybegynder
Din løsning...
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.