Outlook-Mail unvollständig



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Outlook-Mail unvollständig
von: Guido
Geschrieben am: 18.07.2002 - 12:30:45

Hallo xls-Forum,

im untenstehenden Code wird automatisch eine Mail mit Nutzerangaben des Anwenders an eine Outlook-Mailadresse versendet, sobald er z.B. das Excel-Programm startet. Doch leider werden nur 2 der 4 Zeilen im Mail-Body angezeigt, nämlich Nutzer und PC-ID. Datum und Zeit bleiben unsichtbar. Lasse ich die beiden ersten Einträge weg, werden dann aber Datum und Zeit angezeigt. Es scheint, als würde Outlook generell nur 2 Zeilen anzeigen. Woran kann das liegen?

Hinweis: Outlook_opened und cptName sind Funktionen, die hier nicht explizit aufgeführt sind, aber den richtigen Funktionswert liefern.

Vielen Dank
MfG Guido


Option Explicit

Sub WriteMail()
Dim outObj As Object
Dim Mail As Object

  Set outObj = CreateObject("Outlook.Application")
  Set Mail = outObj.CreateItem(0)
  Mail.Subject = "Programm gestartet"
  Mail.Body = "Nutzer: " & Application.UserName Chr(13) & _
              "PC-ID:  " & cptName Chr(13) & _
              "Datum:  " & DateValue(Now) & Chr(13) & _
              "Zeit:   " & TimeValue(Now)
  Mail.To = "abc@dfg.de"
  Mail.CC = "hij@klm.de"
  Mail.send
  If Outlook_opened = False Then outObj.Quit
 Set Mail = Nothing
 Set outObj = Nothing
End Sub





nach oben   nach unten

Re: Outlook-Mail unvollständig
von: Karsten Brocksieper
Geschrieben am: 18.07.2002 - 12:55:02

Hallo,
mit nachfolgender Routine klappt es bei mir einwandfrei...
HTH, Karsten

--------------

Sub SendMessage(DisplayMsg As Boolean, Optional AttachmentPath)
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment
' Create the Outlook session.
Set objOutlook = CreateObject("Outlook.Application")
' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
' Add the To recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("Karsten Brocksieper")
objOutlookRecip.Type = olTo
.Subject = "Dies ist ein Test"
.Body = "Nutzer: " & Application.UserName & Chr(13) & _
"PC-ID: " & "PC" & Chr(13) & _
"Datum: " & DateValue(Now) & Chr(13) & _
"Zeit: " & TimeValue(Now)

' Resolve each Recipient's name.
For Each objOutlookRecip In .Recipients
objOutlookRecip.Resolve
Next
End With
Set objOutlook = Nothing
End Sub

nach oben   nach unten

Re: Outlook-Mail unvollständig
von: Guido
Geschrieben am: 18.07.2002 - 13:31:59

Hallo Karsten,

danke für Deine schnelle Antwort, ich bringe aber das Programm gar nicht zum Laufen. Du hast eine Wertübergabe (DisplayMsg As Boolean) gemacht, aber irgendwie die dazugehörige Sub vergessen und ich verstehe leider auch nicht, wieso Du
Dim objOutlook As Outlook.Application
und nicht
Dim objOutlook as Object
deklarierst, während Du bei
Set objOutlook = CreateObject("Outlook.Application")
nochmals ein Object "Outlook.Application" erzeugst.
Ist das nicht doppelt gemoppelt?
Allerdings funzt es bei Dir ja und ist somit über jeden Zweifel erhaben.
Ich hoffe, Du kannst mir weiterhelfen.

MfG Guido


nach oben   nach unten

Re: Outlook-Mail unvollständig
von: Karsten Brocksieper
Geschrieben am: 18.07.2002 - 15:56:45

Hallo,

also, dann wollen wir doch mal versuchen, ein wenig "Licht ins Dunkel" zu bringen ;-))

1.) DisplayMsg als Wertübergabe bestimmt, ob das Mail direkt (=sofort) gesendet wird (False) oder ob Du dir die Mail vorher noch einmal ansehen möchtest (True) --- in dem Fall könntest Du noch was ändern, so Du denn möchtest, bevor Du sie endlich -manuell- abschickst... manche Leute wollen halt vorher noch mal sehen, was sie denn losschicken ;-))

2.) Dim ... as Outlook.Application nehme ich, weil ich ja schon weiss, dass in diese Variable ein Outlook-Objekt reinkommt, d.h. ich kann eine sogenannte "frühe Bindung" der Objektvariablen vornehmen...dies geht aber nur, wenn Du den Verweis auf Outlook definierst. Vorteile der "frühen Bindung" gegenüber einer "späten Bindung" würde jetzt etwas zu weit führen, denn Du willst ja erst mal die Funktion hinkriegen ;-)

3.) Set ... = CreateObject...
Das ist nicht "doppelt gemoppelt", denn damit instanziiere ich lediglich die Variable, die ich weiter oben NUR initialisiert habe...doppelt gemoppelt wäre, wenn ich die Dimensionierung auch noch mit dem Schlüsselwort "NEW" kombiniert habe...nämlich folgendermaßen...
Dim .... as NEW Outlook.application

Aber, abgesehen davon: Wo liegt eigentlich dein Problem genau? Hast Du eine Fehlermeldung? Dann helfe ich gerne weiter?

Gruß, Karsten

nach oben   nach unten

Re: Outlook-Mail unvollständig
von: Guido
Geschrieben am: 18.07.2002 - 21:34:07

Hallo Karsten, danke für Deine Ausführungen.
Das Problem liegt, wie schon zu Beginn meiner 2. Mail beschrieben, in der Nichtausführbarkeit Deines Codings. Im Debug-Modus mit Taste F5 oder F8 passiert leider gar nichts. Da dachte ich mir, da fehlt doch die Sub, in der die Boolean-Variable DisplayMsg gesetzt wird. Bei meinem Coding geht alles prächtig, doch es werden eben nicht alle programmierten Zeilen in den Outlook-Body eingefügt. Da stehen nur 2 von 4 Zeilen. Was mache ich falsch?

Freundliche Grüße sendet Guido


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Outlook-Mail unvollständig"