Ma situation:mail quand Outlook est pas déjà ouvert
Je suis en train d'envoyer des e-mails alors que Outlook n'est pas ouvert. Ce code fonctionnera si Outlook est en cours d'exécution. Si Outlook est fermé, le code créera un processus non visible que vous pouvez voir s'exécuter dans le Gestionnaire des tâches. Le code rencontre une erreur pendant le code .Send
. Il renvoie l'erreur d'exécution 287.
D'après mon expérience, certaines méthodes VBA ne fonctionnent que lorsque l'objet est visible ou actif. Mon travail consiste à utiliser .Display(False)
avant d'appeler .Send
.
Après avoir appelé .Send
, il met immédiatement fin au processus Outlook. (S'il vous plaît pointez-moi vers la bonne direction pourquoi.) Ensuite, l'e-mail reste coincé dans la boîte d'envoi.
je dois appliquer un autre travail autour en appelant une autre CreateObject("Outlook.Application")
et soit en boucle à travers la boîte d'envoi While Outbox.Items.Count > 0
ou
Looping par SyncObjects
et appeler manuellement .Start
pour exécuter Envoyer/Recevoir sur la boîte d'envoi.
Ma question:
Y at-il un moyen d'utiliser directement la méthode .Send
au lieu d'utiliser arounds de travail tout en ne pas avoir à ouvrir Outlook.
Mon code:
Sub emailer()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.to = "[email protected]"
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Send 'or use .Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
essayer de mettre la « Alors que Outbox.Items.Count> 0 » boucle dans votre code juste après la ligne – jsotola