Just nu i M3-nätverket
Gå till innehåll

Använda worddokument som mailbody


Tune

Rekommendera Poster

Jag använder följande kod för att skicka mail till en lista med emailadresser. Min fråga är hur man gör för att använda innehåller i ett worddokument som mailbody i stället för att göra som jag gör idag när jag läser innehållet i cell J2 till J24 plus ett namn i en av kolumnerna i tabellen och börjar med hårdkodat "Hej!"? Grunden är från Ron De Bruin sida som är något modifierat.

Sub Mailutskick()
   Dim OutApp As Object
   Dim OutMail As Object
   Dim cell As Range

   If MsgBox("Vill du skicka mail till namnen i listan?", vbYesNo) = vbYes Then

   Application.ScreenUpdating = False
   Set OutApp = CreateObject("Outlook.Application")

   On Error GoTo cleanup
   For Each cell In Columns("B").Cells.SpecialCells(xlCellTypeConstants)
       If cell.Value Like "?*@?*.?*" And _
  		LCase(Cells(cell.Row, "C").Value) = "yes" Then

           Set OutMail = OutApp.CreateItem(0)
           On Error Resume Next
           With OutMail
               .To = cell.Value
               .Subject = Range("J1").Value & "!"
               .Body = "Hej " & Cells(cell.Row, "A").Value & "!" _
                     & vbNewLine & vbNewLine & _
                       Range("J2").Value & vbNewLine & _
                       Range("J3").Value & vbNewLine & _
                       Range("J4").Value & vbNewLine & _
                       Range("J5").Value & vbNewLine & _
                       Range("J6").Value & vbNewLine & _
                       Range("J7").Value & vbNewLine & _
                       Range("J8").Value & vbNewLine & _
                       Range("J9").Value & vbNewLine & _
                       Range("J10").Value & vbNewLine & _
                       Range("J11").Value & vbNewLine & _
                       Range("J12").Value & vbNewLine & _
                       Range("J13").Value & vbNewLine & _
                       Range("J14").Value & vbNewLine & _
                       Range("J15").Value & vbNewLine & _
                       Range("J16").Value & vbNewLine & _
                       Range("J17").Value & vbNewLine & _
                       Range("J18").Value & vbNewLine & _
                       Range("J19").Value & vbNewLine & _
                       Range("J20").Value & vbNewLine & _
                       Range("J21").Value & vbNewLine & _
                       Range("J22").Value & vbNewLine & _
                       Range("J23").Value & vbNewLine & _
                       Range("J24").Value & vbNewLine
               'You can add files also like this
               '.Attachments.Add (Range("J11").Value)
               .SendUsingAccount = OutApp.Session.Accounts.Item(1) 'Ändras vid behov
               .Send  'Or use Display
           End With
           On Error GoTo 0
           Set OutMail = Nothing
       End If
   Next cell

cleanup:
       Set OutApp = Nothing
       Application.ScreenUpdating = True

   Else

       Exit Sub

   End If
   MsgBox ("Det har nu skickats mail till adresserna i listan")
End Sub

Länk till kommentar
Dela på andra webbplatser

Att jobba i med Word i VBA är inte alltid så lätt då Word inte är lika strukturerat som Excel.

 

Vilken detaljrikedom om Word-texten behöver du?

Duger

Sub test()
Dim wApp As Word.Application
Dim wDoc As Word.Document
Dim fName As String
fName = ThisWorkbook.Path & "\Hej.docx"
On Error GoTo er
Set wApp = New Word.Application
Set wDoc = wApp.Documents.Open(fName)
With wDoc
  	Debug.Print .Range
End With
er:
If Not wDoc Is Nothing Then wDoc.Close False
Set wApp = Nothing
End Sub

Eller är tanken att få med hela dokumentet med format och allt?

Länk till kommentar
Dela på andra webbplatser

och det duger inte att bifoga dokumentet, de ska in som text i kroppen på din e-post?

 

Jag tror icke det går, inte att skicka med formaterad text via VBA. Det du kan göra är att formatera med HTML-taggar eller bifoga hela Word-dokumentet.

 

För att få med alla format från Word måste du annars ha tillgång ett fysiskt fönster, det som är själva e-posten, och lyckas göra en Paste där. Via normala VBA-koden, som i ditt exempel, är det bara ren text som kan förmedlas.

Länk till kommentar
Dela på andra webbplatser

Ok!

Jag har letat runt en bra stund på webben och inte hittat något fungerande tips där heller. Ska även kolla HTML-taggar. Det smidigaste och minst jobb blir helt klart att skriva några rader text + länk till wordfilen eller vad det nu blir för format på filen med meddelandet och sen skicka med befintlig kod. Anledningen till att jag inte vill bifoga är att det är minst 70 mottagare.

 

Tack för hjälpen.

/Tune

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...