2010-04-05 9 views
0

J'ai une macro Excel utilisée pour envoyer des e-mails avec des pièces jointes qui sont des classeurs Excel. Parfois, au lieu du fichier joint, il devient un objet incorporé. Cet objet incorporé est ouvert par les utilisateurs de l'entreprise (après avoir cliqué sur le bouton "Vous êtes sur le point d'activer un objet incorporé pouvant contenir des virus ou être nuisible à votre ordinateur.) Il est important de s'assurer qu'il provient d'une source fiable. Voulez-vous continuer? "), Mais pour les personnes extérieures à l'entreprise, l'e-mail semble n'avoir aucune pièce jointe.Pièces jointes s'incrustant

Cela semble se produire de manière aléatoire et uniquement sur certains ordinateurs. Donc, si la liste contient 15 listes de courriels et pièces jointes, cela arrive entre 0 et 15 des courriels. Pour être clair, mon objectif est d'envoyer des courriels avec des pièces jointes régulières. Exécuter Excel 2003, Outlook 2003 et Windows XP.

Sub Email() 
Dim P As String 
Dim N As String 
Dim M As String 
Dim Subject As String 
Dim Addresses As String 
Dim olApp As Outlook.Application 
Dim olNewMail As Outlook.MailItem 

Application.DisplayAlerts = False 

M = ActiveWorkbook.Name 

For c = 2 To 64000 
    If Range("B" & c) = "" Then Exit For 
    If UCase(Range("E" & c)) = "Y" Then 
     Workbooks(M).Sheets("Main").Activate 
     Subject = Range("A" & c) 
     Addresses = Range("B" & c) 
     P = Range("C" & c) 
     N = Range("D" & c) 
     If Right(P, 1) <> "\" Then P = P & "\" 
     If Right(N, 4) <> ".xls" Then N = N & ".xls" 
     Set olApp = New Outlook.Application 
     Set olNewMail = olApp.CreateItem(olMailItem) 
     With olNewMail 
      .Display 
      .Recipients.Add Addresses 
      Application.Wait (Now + TimeValue("0:00:01")) 
      SendKeys ("{TAB}") 
      .Subject = Subject 
      .Attachments.Add P + N 
      .Send 
     End With 
     Set olNewMail = Nothing 
     Set olApp = Nothing 

    End If 
Next c 

Range("E2:E65536").ClearContents 
Application.DisplayAlerts = True 

End Sub 

Répondre

1

Vous avez probablement juste besoin de définir explicitement le format du message en utilisant la propriété olMailItem.BodyFormat: http://msdn.microsoft.com/en-us/library/aa211430(v=office.11).aspx

On dirait qu'il est affiché comme un message de format Rich (avec la pièce jointe en tant intégré objet) plutôt qu'un e-mail au format HTML.