Nel caso puoi usare questa macro che ho provato e funziona con outlook express interagendo bene con un foglio di excel
Macro1 apre outlook express
- Codice: Seleziona tutto
Sub PrendiOggetto()
AvviaOE = Shell("C:\Programmi\Outlook Express\msimn.exe")
Application.Wait (Now + TimeValue("0:00:02"))
Call SendEmail2
End Sub
macro2 la compila e spedisce
- Codice: Seleziona tutto
Sub SendEmail2()
For Each cell In Columns("E").Cells.SpecialCells(xlCellTypeConstants) 'nella colonna "E" ci sono gli indirizzi email completi
If cell.Value Like "*@*" Then
Recipient = cell.Value
Subj = "Inserire l'oggetto (anche da cella di excel)"
Msg = "Caro (o altro) " & cell.Offset(0, -1).Value & "%0A" 'nella colonna "D" il nome
Msg = Msg & "%0A" & "Ti invio il Report etc etc"
Msg = Msg & cell.Offset(0, 1).Value & "%0A"
Msg = Msg & "%0A" & "Nome e Cognome di chi invia"
Msg = Msg & "%0A" & "L'Amministratore"
HLink = "mailto:" & Recipient & "?"
HLink = HLink & "subject=" & Subj & "&"
HLink = HLink & "body=" & Msg
ActiveWorkbook.FollowHyperlink (HLink)
Application.Wait (Now + TimeValue("0:00:02"))
'SendKeys "%s", True
Application.SendKeys "%s"
End If
Next
End Sub
si tratta ora di adattare le celle del tuo foglio di excel nel corpo del messaggio
Per fare una prova puoi mettere in E2 del foglio il
tuoindirizzo@email.ite avviare la macro1
Tenendo presente che outlook express una volta aperto riceve i messaggi quindi puoi mettere anche 10 secondi nel TimeValue della prima macro oppure 1 se outlook lo hai già aperto precedentemente, inoltre puoi variare il Timevalue della seconda macro anche ad 1 secondo se nel corpo del messaggio non ci sono molti dati.
Per questi ultimi secondi (2) vedrai la tua email pronta per essere inviata ma non toccare nulla, ci penserà la stessa macro a spedire l'email e outlook si chiuderà a icona.
Fai sapere
Ciao