Word Makro - Sendbutton via Outlook kann den Pfad der Datei nicht finden
Hallo zusammen,
ich habe ein einfaches Makro für ein Word Dokument erstellt, in dem ein Sendbutton das aktuell bearbeitete Dokument an eine Email Adresse senden soll, sobald man auf den Sendbutton klickt.
Es sollt sich das Dokument dann in Outlook als eine neue Mail mit angehängtem Anhang mit dem Word Dokument öffnen.
Das vb-makro sieht wie folgt aus:
Wenn ich das Word Dokument öffne und bearbeite und anschliessend auf den Sendbutton im Dokument klicke, kommt allerdings folgende Fehlermeldung:
Wenn ich auf Debug klicke komme ich zur folgende Zeile im Makro:
Wisst ihr welchen Befehl ich benötige, damit der path file Fehler nicht mehr kommt und das Dokument an das Outlook Attachement Fenster angehängt wird?
Danke im voraus und grüsse
staybb
ich habe ein einfaches Makro für ein Word Dokument erstellt, in dem ein Sendbutton das aktuell bearbeitete Dokument an eine Email Adresse senden soll, sobald man auf den Sendbutton klickt.
Es sollt sich das Dokument dann in Outlook als eine neue Mail mit angehängtem Anhang mit dem Word Dokument öffnen.
Das vb-makro sieht wie folgt aus:
Private Sub CommandButton1_Click()
Dim objOutlook As Object
Dim objMail As Object
' Outlook starten
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0) ' Neue E-Mail erstellen
' E-Mail-Eigenschaften festlegen
With objMail
.Subject = "Betreff" ' Betreff der E-Mail
.To = "Person@mail.xx" ' Empfänger-E-Mail-Adresse
.Body = "Hier den Text der E-Mail." ' Text der E-Mail
.Attachments.Add ActiveDocument.FullName ' Aktuelles Dokument anhängen
.Display ' E-Mail anzeigen
End With
' Objekte freigeben
Set objMail = Nothing
Set objOutlook = Nothing
End Sub
Wenn ich das Word Dokument öffne und bearbeite und anschliessend auf den Sendbutton im Dokument klicke, kommt allerdings folgende Fehlermeldung:
Wenn ich auf Debug klicke komme ich zur folgende Zeile im Makro:
.Attachments.Add ActiveDocument.FullName ' Aktuelles Dokument anhängen
Wisst ihr welchen Befehl ich benötige, damit der path file Fehler nicht mehr kommt und das Dokument an das Outlook Attachement Fenster angehängt wird?
Danke im voraus und grüsse
staybb
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6391130933
Url: https://administrator.de/contentid/6391130933
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
9 Kommentare
Neuester Kommentar
Zitat von @staybb:
Ich nehme an, ohne das Dokument zu speichern ist es nicht möglich dass das Dokument per Attach über Outlook versendet werden kann, nachdem es bearbeitet wurde?
Mit der o.g. Methode , Nein.Ich nehme an, ohne das Dokument zu speichern ist es nicht möglich dass das Dokument per Attach über Outlook versendet werden kann, nachdem es bearbeitet wurde?
Hiermit kannst du aber auch testen, bin gerade unterwegs, damit hast du dann aber keinen Einfluss auf andere Parameter wie Subject Empfänger etc ...
https://learn.microsoft.com/de-de/office/vba/api/word.document.sendmail
Das ist leider organisatorisch dann etwas suboptimal, da die Benutzer im besten Fall das Dokument nur bearbeiten sollen und dann direkt per mail ohne zwischenspeichern versenden sollen können.
Einfach per Skript beim Klick auf den Button automatisiert im TEMP-Ordner speichern und nach dem Anhängen/Senden das Dokument schließen und das File wieder löschen, und das Thema ist erledgt.Bei der zweiten variante weisst du den welchen code man benötigt, damit beim Klick auf den Button das dokument im temp ordner gespeichert wird und nach dem senden das dokument wieder geschlossen und das file geöscht wird?
Private Sub CommandButton1_Click()
Dim objOutlook As Object
Dim objMail As Object
Dim strDocPath as String
' Speicherpfad im TEMP festlegen
strDocPath = Environ("TEMP") & "\document.docx"
' Dokument speichern
ActiveDocument.SaveAs2 strDocPath, wdFormatDocumentDefault
' Outlook starten
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0) ' Neue E-Mail erstellen
' E-Mail-Eigenschaften festlegen
With objMail
.Subject = "Betreff" ' Betreff der E-Mail
.To = "Person@mail.xx" ' Empfänger-E-Mail-Adresse
.Body = "Hier den Text der E-Mail." ' Text der E-Mail
.Attachments.Add strDocPath ' Aktuelles Dokument als Attachment hinzufügen
.Send ' E-Mail senden
End With
kill strDocPath ' Dokument löschen
' Objekte freigeben
Set objMail = Nothing
Set objOutlook = Nothing
End Sub
Jepp Rechtschreibkorrektur des Tatschphones, sorry Fehler sind korrigiert...
Das habe ich behoben, aber ich bin noch am schauen warum es nicht ausgeführt wird.
Es wird direkt ohne Nachfrage mit .send gesendet, da erscheint nix sichtbares, wenn du noch ne Meldung über das Senden willst, mach ne MsgBox am Ende rein ...