kleina
Goto Top

Wie kann ich per Skript Emails versenden?

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 !

Content-Key: 180230

Url: https://administrator.de/contentid/180230

Printed on: April 19, 2024 at 20:04 o'clock

Member: Berrnd
Berrnd Feb 08, 2012 at 15:10:09 (UTC)
Goto Top
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: ;)
Sub EMailSenden()
    Dim oNachricht As Outlook.MailItem
    Dim oOutApp As Outlook.Application
    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 = New 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
            .Attachments.Add "C:\temp\test.txt"  
            .Display
        End With
    End If
End Sub
Viele Grüße,
Bernd
Member: Kleina
Kleina Feb 09, 2012 at 06:50:36 (UTC)
Goto Top
Vielen Dank!

das hat mir sehr weitergeholfen.

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

Sub email()
Application.Dialogs(xlDialogSendMail).Show
End Sub

kann man diese Funktion nicht auch für andere Dokumente nehmen?
weil dies gilt ja nur für Excel, leider!