Il tutto purtroppo necessita di alcune spiegazioni...
Vorrei precisare che la modalita'
- Codice: Seleziona tutto
.Display
'attesa alcuni secondi
Application.SendKeys "%i" '??? %a ???
Funziona fino a Windows XP; per OS successivi (Vista e Win 7) le impostazioni di "Controllo dell' Account Utente" (UAC) in genere impediscono l' emissione di sequenze di caratteri verso "altre applicazioni" per una diversa impostazione di protezione.
Il risultato potrebbe quindi essere che la mail viene visualizzata completamente ma non viene inviata; premendo Alt-? da tastiera (con la mail visualizzata) invece la mail parte.
Per "?" intendo il carattere che risulta sotttolineato nella icona di "Invia (mail)" presente nella barra degli strumenti della finestra della mail. Per quello che ne so in OL2003 esso e' "a" per la versione Italiana (quindi SendKeys "%a" nel codice vba), ed "s" per la versione Inglese (quindi SendKeys "%a" nel codice vba).
Il settaggio dello UAC e' modificabile all' interno di Pannello di controllo /Account utente, ma immagino si tratti di un abbassamento del livello di sicurezza per cui non lo consiglio.
In alternativa si puo' usare pero' uno script che fa la stessa cosa di Application.SendKeys:
- Codice: Seleziona tutto
Set WSShell = CreateObject("WScript.Shell")
WSShell.SendKeys ("%a") '<< Vedi testo
Sostituisce nella macro la riga
Application.SendKeys "%a"A seconda dello shortcut usato dall' applicazione potrebbe essere necessario usare una sequenza diversa da %a; vedi commento di prima.
Nelle versioni Outlook superiori a OL2003 (quindi OL2007 e OL2010), e' pero' disponibile una prestazione che consente di usare .Send senza che questo provochi la comparsa di un messaggio che chiede all' operatore di confermare l' invio automatico della mail da parte del vba (questo e' il motivo per cui si usa .Display /SendKeys); non ho queste versioni, quindi non sono in grado di segnalarvi correttamente il comando da utilizzare; la letteratura dice Menu /Tools /Trust Center /Program access, impostare "Never warn me about suspicious activity".
Immagino che ahidai abbia OL2007/2010 con questa impostazione, e sospetto che non abbia XP.
In quanto al run time error 287 penso che questo potrebbe verificarsi se l' impostazione di Outlook prevede la conferma dell' invio della mail e questa non viene data dall' utente.
A seconda del mix tra versione e SO la soluzione potrebbe essere:
OL2003 & XP: .Display e Application.Sendkeys
OL2003 & Vista o Win 7: .Display e Script
OL2007 & XP: come per OL2003 & Xp OPPURE .Send e "Never warn me about suspicious activity"
OL2007 & Vista o Win 7: .Display e Script OPPURE .Send e "Never warn me about suspicious activity"
Se con questi spunti non risolvi:
-dicci quale e' la tua combinazione di versione Applicazione e Sistema Operativo
-dicci quando crei una mail manualmente quale e' lo shortcut (Alt-carattere) con cui si comanda l' invio mail.
Ciao