Avatar billede kasperh Nybegynder
10. maj 2002 - 10:26 Der 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?
Avatar billede mile Juniormester
10. maj 2002 - 11:21 #1
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 ??
Avatar billede kasperh Nybegynder
10. maj 2002 - 11:32 #2
Spørgsmålet kan ændres til, hvordan starter jeg min makro automatisk når der kommer en ny mail?
Avatar billede kasperh Nybegynder
10. maj 2002 - 16:18 #3
Men problemet er jo hvordan jeg gør det? Kan du/andre ikke hjælpe?
Avatar billede Slettet bruger
12. maj 2002 - 23:36 #4
Kan du ikke bruge den event der hedder Application_NewMail ?
Avatar billede kasperh Nybegynder
13. maj 2002 - 09:56 #5
Jo. Tak. :D Laver du ikke lige et svar, så du kan få dine point :)
Avatar billede Slettet bruger
13. maj 2002 - 09:57 #6
ok
Avatar billede kasperh Nybegynder
13. maj 2002 - 10:36 #7
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?!?
Avatar billede 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)

myItem.Display

End Sub
Avatar billede kh-proffcom Nybegynder
15. maj 2002 - 15:39 #9
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.
Avatar billede 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 ?
Avatar billede 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
-------------
Avatar billede kh-proffcom Nybegynder
15. maj 2002 - 17:16 #12
funker desværre ikke. Derudover får jeg følgende fejl på myItems.Sort:
Object Required.
Avatar billede Slettet bruger
15. maj 2002 - 17:25 #13
Prøv at erstatte "[ReceivedTime]" med navnet på den kolonne hvori
modtagelsestidspunktet står.

Hvilken version af Outlook bruger du ?
Dansk eller Engelsk ?
Avatar billede kh-proffcom Nybegynder
15. maj 2002 - 17:43 #14
Engelsk. Nu fejler den ikke, efter jeg ændrede det til "Received".
Tilgengæld tager den stadig ikke den nyeste mail.
Avatar billede kh-proffcom Nybegynder
15. maj 2002 - 17:50 #15
MsgBox'en kommer heller ikke op. Som om at variablen myItems(myItems.Count).Received er tom.
Avatar billede Slettet bruger
15. maj 2002 - 17:54 #16
Linien:
MsgBox myItems(myItems.Count).ReceivedTime

skal stadigvæk have 'ReceivedTime' til sidst, ikke 'Received'.
Avatar billede kh-proffcom Nybegynder
16. maj 2002 - 10:12 #17
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?
Avatar billede 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 ?
Avatar billede kh-proffcom Nybegynder
16. maj 2002 - 11:35 #19
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.
Avatar billede 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 ?
Avatar billede kh-proffcom Nybegynder
18. maj 2002 - 19:28 #21
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.)
Avatar billede 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"
Avatar billede kh-proffcom Nybegynder
23. maj 2002 - 15:55 #23
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?
Avatar billede 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")
Avatar billede kh-proffcom Nybegynder
24. maj 2002 - 09:00 #25
Tusind tak for hjælpen. Det fungerede. :)
Avatar billede kasperh Nybegynder
24. maj 2002 - 09:03 #26
Resten af dine point ligger her:
http://www.eksperten.dk/spm/215472
Avatar billede tma Juniormester
29. august 2005 - 09:02 #27
Hvad er der galt når min Outlook ikke reagerer på newmail hændelsen? Makrosikkerhed er sat til lav...

Torben
Avatar billede tma Juniormester
29. august 2005 - 10:23 #28
Har selv fundet fejlen....

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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester