510
d4shoerncheN
iDiddi
LauneBaer
MrNetman

Wie kann ich per Skript Emails versenden?

Mitglied: Kleina
08.02.2012
13:26:37 Uhr
415 Aufrufe
2 Antworten
Hallo Zusammen,
ich würde gerne per skript ( Makro, VBA) eine offene Datei, TIFF, PDF als Anhang per Mail senden.
Ich würde gerne per skript ( Makro, VBA) eine offene Datei, TIFF, PDF als Anhang per Mail senden.

dabei soll in Outlook eine neue Email geöffnet werden und die offene Datei als Anhang eingefügt werden.
Der Empfänger, Betreff etc. soll manuell in dem Email Formular in Outlook angegeben werden.

Zum Problem ist noch zu sagen das ich ein sozusagen Archiv benutzte, welches Dokumente enthält (diese wurden eingescannt).
diese Dokumente sind als TIFF-Datei hinterlegt.

wenn ich mir also ein Dokument anschaue, soll genau das in Outlook exportiert werden.

Bisher habe ich folgendes geschafft:

Sub EMailSenden()

Dim oNachricht As Object
Dim oOutApp As Object
Dim sEmailAdresse As String
Dim sBetreff As String
Dim sText As String


If sEmailAdresse = "" Then

MsgBox "Es wurde keine Versandadresse gefunden. Bitte überprüfen Sie Ihre Auswahl.", vbInformation, "Hinweis"

Else

Set oOutApp = CreateObject("Outlook.Application")

Set oNachricht = oOutApp.CreateItem(0)

With oNachricht

If InStr(sEmailAdresse, ";") = False Then 'Es ist nur ein Empfänger angegeben -> versende mit To:

.To = sEmailAdresse

Else

.BCC = sEmailAdresse 'Es sind mehrere Empfänger angegeben -> versende mit BCC: wg. Datenschutz

End If

.Subject = sBetreff
.Body = sText


.Display
.Application.Dialogs(xlDialogSendMail).Show

End With

End If

Exit Sub

End Sub


nur leider funktioniert dies nicht und ich kann mir nicht erklären wieso.

Ich hoffe jemand kann mir da weiterhelfen face-smile

Vielen Dank schonmal !

Mitglied: bernd.bestel
bernd.bestel schreibt am 08.02.2012 um 16:10:09 Uhr
Hi,

hättest du die Objekte mal "typsicher" deklariert, hättest du gemerkt, dass ein Objekt vom Typ "Outlook.Application" kein Methode "Application.Dialogs..." hat... ;)

Beispiel, das funktioniert: ;)
01.
Sub EMailSenden() 
02.
    Dim oNachricht As Outlook.MailItem 
03.
    Dim oOutApp As Outlook.Application 
04.
    Dim sEmailAdresse As String 
05.
    Dim sBetreff As String 
06.
    Dim sText As String 
07.
     
08.
    If sEmailAdresse = "" Then 
09.
        MsgBox "Es wurde keine Versandadresse gefunden. Bitte überprüfen Sie Ihre Auswahl.", vbInformation, "Hinweis" 
10.
    Else 
11.
        Set oOutApp = New Outlook.Application 
12.
        Set oNachricht = oOutApp.CreateItem(0) 
13.
         
14.
        With oNachricht 
15.
            If InStr(sEmailAdresse, ";") = False Then 'Es ist nur ein Empfänger angegeben -> versende mit To: 
16.
                .To = sEmailAdresse 
17.
            Else 
18.
                .BCC = sEmailAdresse 'Es sind mehrere Empfänger angegeben -> versende mit BCC: wg. Datenschutz 
19.
            End If 
20.
             
21.
            .Subject = sBetreff 
22.
            .Body = sText 
23.
            .Attachments.Add "C:\temp\test.txt" 
24.
            .Display 
25.
        End With 
26.
    End If 
27.
End Sub
Viele Grüße,
Bernd
Mitglied: Kleina
Kleina schreibt am 09.02.2012 um 07:50:36 Uhr
Vielen Dank!

das hat mir sehr weitergeholfen.

Ich bin auch auf eine andere Lösung gestoßen:

01.
Sub email() 
02.
Application.Dialogs(xlDialogSendMail).Show 
03.
End Sub

kann man diese Funktion nicht auch für andere Dokumente nehmen?
weil dies gilt ja nur für Excel, leider!
mehr ...Ähnliche Beiträge