Word-Formular per Mail

19/01/2010 - 12:17 von Marcel Dunkelberg | Report spam
Hallo NG,

ich bastel hier gerade etwas und bin überfragt. Vielleicht habt ihr eine
Idee.

Gegeben ist: altes Word Dokument mit bestehenden Checkboxen und
Freitext-Formularfeldern.

Zwecks besserem Handling möchte ich dieses Formular per Mail an einen
Account verschicken der automatisch Tickets für die User erstellt.
Ungern möchte ich aber das Word-Dokument verschicken sondern als Body-Text.

Der momentan zusammengeklaute VB-Code sieht so aus:

Sub Mail()
'outlook-objekt erzeugen und initialisieren
Dim Nachricht
Dim OutApp As Object

Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)

ActiveDocument.SaveAs "H:\Test.doc"
'ActiveDocument.SaveAs strName

With Nachricht
.Subject = "Testversand"

Dim text As String
.attachments.Add "H:\Test.doc"
.To = "helpdesk@xyz.de"
On Error Resume Next

'mail anzeigen und mit alt+s abschicken
.Display
SendKeys "%s", True

On Error GoTo 0
End With

'outlook-objekt löschen
Set Nachricht = Nothing


End Sub


Ideen wie man das besser oder richtiger machen kann?

Gruß
Marcel
 

Lesen sie die antworten

#1 Marcel Dunkelberg
19/01/2010 - 12:37 | Warnen spam
Neue Idee gefunden.. klappt auch, jedoch werden die Checkbox-Stati nicht
mit übermittelt.

Sub SendDocumentInMail()

Dim bStarted As Boolean
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)

On Error Resume Next

'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
'Outlook wasn't running, start it from code
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If

'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)

With oItem
'Set the recipient for the new email
.To = ""
'Set the recipient for a copy
.CC = ""
'Set the subject
.Subject = "Testmail"
'The content of the document is used as the body for the email
.Body = ActiveDocument.Content
.Send
End With

If bStarted Then
'If we started Outlook from code, then close it
oOutlookApp.Quit
End If

'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing

End Sub

Ähnliche fragen