23. juni 2011 - 22:25Der er
6 kommentarer og 1 løsning
Outlook 2010 macro - gem i word
Hej.
Er der nogen, der kan finde ud af outlook 2010 vba? Det er lidt svært at få hul på, synes jeg.
Jeg har brug for en makro, der kan
1. Vælge alt indhold i den markerede mail. 2. Åbne Word - et tomt dokument. 3. Paste teksten til det tomme worddokument. 4. Trykke "Gem" i word - så profilering kommer op (den skal ikke gemme færdig, blot så man kommer frem til at skulle vælge bibliotek, filnavn osv.
Er der nogen, der kan hjælpe med ovenstående?
Tilføjelse: Kan man, hvis man vil gemme en sendt mail, få "dato- modtager (mfl.) - angivelserne" med?
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
Det skal være til word, fordi vores dokumenthåndteringssystem kun er direkte integreret med word og med excel, hvor der popper en større profileringssag op, når der trykkes gem i word eller excel-dokumenter.
Den integration kan jeg ikke få med Outlook (det er et gammelt program), så jeg bliver nødt til at få det over i word og så gemme indholdet på den måde...
Jeg har ikke lavet meget VBA til Outlook men voldsomt meget til Word. Men jeg har nu lavet nedenstående makro, som skulle gøre det, du ønsker - virker i hvert tilfælde hos mig i Outlook 2010. Du kan så bygge videre på den.
Se kommentarerne i selve makroen. De forskellige indholdsdele, der er indsat, kan findes i VBA-hjælp under "PostItem Object Members". Så kan du jo finde dem, du vil bruge.
Sub CreateWordDocFromEmail()
Dim oDoc As Object Dim strMailText As String Dim oWord As Object Dim oMailItem As Object Dim strTitle As String '=========================
On Error GoTo ErrorHandler
strTitle = "Overfør tekts fra aktive mail til Word"
'get Word - errorhandler opens Word if not running Set oWord = GetObject(, "Word.Application") '========================= 'mail item = active mail Set oMailItem = ActiveInspector.CurrentItem
'store Body in variable With oMailItem strMailText = .Body
'create Word document and insert text Set oDoc = oWord.documents.Add With oDoc .Range.Text = strMailText
.Activate oWord.dialogs(84).Show '84 = dialogboksen wdDialogFileSaveAs End With
'========================= ExitIfError: 'clean up Set oWord = Nothing Set oMailItem = Nothing Exit Sub '========================= ErrorHandler: If Err.Number = 429 Then 'Word not running, start now Set oWord = CreateObject("Word.Application") Resume Next ElseIf Err.Number = 91 Then MsgBox "Du skal åbne den e-mail, som skal overføres til Word.", vbOKOnly + vbExclamation, strTitle Err.Clear GoTo ExitIfError Else MsgBox "Der opstod en fejl.", vbOKOnly + vbExclamation, strTitle Err.Clear GoTo ExitIfError End If End Sub
Lene: den du har lavet ovenfor virker rigtig rigtig godt. Du må meget gerne lave et svar.
Eneste hurdle p.t. er, at den ikke ser ud til at slippe dokumentet helt. For når jeg forsøger at åbne dokumentet igen, så fortæller den mig, at filen fortsat benyttes af programmet.... (og word ligger så åben i processer (jobliste), men ses ikke åben på proceslinien i windows)....
Jeg har ikke i koden indbygget noget, som lukker Word eller lukker dokumentet, der oprettes. Det kan du jo gøre, hvis du har brug for det.
F.eks.: Efter linjen med oWord.dialogs(84).Show kan du indsætte følgende linjer: oDoc.Close 'lukker dokumentet - hvis det ikke er gemt, vil du blive spurgt, om du vil gemme oWord.Quit 'afslutter Word
Men hvis du skal køre makroen flere gange efter hinanden, er der jo ingen grund til at lukke Word imellem.
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.