Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

vbs - Textpassage aus Dokument an Email übergeben

Frage Entwicklung VB for Applications

Mitglied: ShitzOvran

ShitzOvran (Level 1) - Jetzt verbinden

28.05.2009, aktualisiert 08:58 Uhr, 5510 Aufrufe, 8 Kommentare

Hallo Ihrs,
gibt es die Möglichkeit zu sagen, dass ein Textbereich von - bis an die Email übergeben werden soll

01.
Dim objOutlook As Outlook.Application 
02.
     
03.
    On Error Resume Next 
04.
    Set objOutlook = GetObject(, "Outlook.Application") 
05.
    If Err.Number <> 0 Then 
06.
        Err.Clear 
07.
        Set objOutlook = CreateObject("Outlook.Application") 
08.
    End If 
09.
     
10.
    If objOutlook Is Nothing Then 
11.
        MsgBox "Konnte keine Verbindung zu Outlook herstellen!", 16, "Problem" 
12.
        Exit Sub 
13.
    End If 
14.
     
15.
    On Error GoTo 0 
16.
     
17.
    Dim Mail As MailItem 
18.
    Set Mail = objOutlook.CreateItem(olMailItem) 
19.
    Mail.Save 
20.
     
21.
    Dim strFileName As String 
22.
    strFileName = Replace(Word.ActiveDocument, "doc", "pdf") 
23.
     
24.
    With Mail 
25.
       
26.
        .To = ""         
27.
        .Subject = "" 
28.
        .HTMLBody = "Mit freundlichen Grüßen" 
29.
 
30.
    End With 
31.
    Set Anhang = Mail.Attachments 
32.
    Anhang.Add (ActiveDocument.Path & "\Bewerbung.pdf") 
33.
    If InStr(1, ActiveDocument.Range, "Lebenslauf", vbTextCompare) > 0 Then 
34.
    Anhang.Add (ActiveDocument.Path & "\Data\Lebenslauf.pdf") 
35.
    End If 
36.
    If InStr(1, ActiveDocument.Range, "Zeugnisse", vbTextCompare) > 0 Then 
37.
    Anhang.Add (ActiveDocument.Path & "\Data\Zeugnisse.pdf") 
38.
    End If 
39.
    Mail.Display 
40.
    
wie bekomme ich jetzt den Text aus meinem Dokument in den Body (wo ich momentan noch "Mit freundlichen Grüßen stehen habe")?

kann ich irgendwie sagen Nehme den Text von "Sehr geehrter" bis "Mit freundlichen Grüßen" und schreibe den als .HTMLBody?
Mitglied: 76109
28.05.2009 um 11:01 Uhr
Hallo ShitzOvran (Thomas Mü ...)!

Erstelle in Word Deinen Email-Text und speichere es unter EMAIL.HTM ab. Lese in einen String ein und Splitte den Body. Oder so ähnlich?

Gruß Dieter
Bitte warten ..
Mitglied: ShitzOvran
28.05.2009 um 11:17 Uhr
hmm, das problem ist, dass mein Dokument auch automatisiert erstellt wird, und ich nicht, alles in dem Body der Email haben will.
Das Dokument ist ein anschreiben mit Adressbereich und unterschirft usw... und ich will nur den Test dazwischen , also das Anschreiben von "Sehr geehrter Herr XYZ" bis "Mit freundlichen Grüßen haben" wenn ich das dokument noch zusätzlich als ".htm" abspeichere und dann übergebe nimmt er nicht den inhalt, sondern schreibt in die Mail den Pfad.... wie kann ich denn sagen, dass er den inhalt des dokumentes nehmen soll?
Bitte warten ..
Mitglied: 76109
28.05.2009 um 14:53 Uhr
Hallo ShitzOvran,

hoffe, dass hilft Dir weiter:

01.
Dim Line As Object, Text As String, Body As Boolean 
02.
     
03.
'..... 
04.
 
05.
For Each Line In Word.ActiveDocument.Paragraphs 
06.
    If InStr(1, Line.Range, "sehr geehrte", vbTextCompare) > 0 Then 
07.
        Text = Line.Range:  Body = True 
08.
    ElseIf InStr(1, Line.Range, "mit freundlichen", vbTextCompare) > 0 Then 
09.
        Text = Text & Line.Range:  Exit For 
10.
    ElseIf Body = True Then 
11.
        Text = Text & Line.Range 
12.
    End If 
13.
Next 
14.
 
15.
'.... 
16.
With Mail 
17.
   .To = "" 
18.
   .Subject = "" 
19.
   .HTMLBody = Text 
20.
End With 
21.
'......
Gruß Dieter
Bitte warten ..
Mitglied: ShitzOvran
29.05.2009 um 08:48 Uhr
Ganz großen Dank....

das ist fast das was ich haben wollte... er kopiert mir den Text rüber.

Das Optimum wäre jetzt natürlich noch, wenn er die Formatierung irgendwie beibehalten könnte, also zB Absätze, die in meinem Text sind, werden dann auch als Absätze erkannt... ist das irgendwie möglich?
Bitte warten ..
Mitglied: 76109
29.05.2009 um 15:07 Uhr
Bitte warten ..
Mitglied: 76109
29.05.2009 um 17:10 Uhr
Hallo ShitzOvran!

Also, im I-Explorer wird es mit Formaten korrekt angezeigt. Bleibt aber die Frage, ob es auch in Deinem Code mit Mail funktioniert?
01.
Option Compare Text 
02.
 
03.
Dim Fso As Object, mFile As Object, mPath As String 
04.
Dim Doc As Object, Line As Object, Body As Boolean, Text As String 
05.
     
06.
Set Doc = ActiveDocument 
07.
 
08.
For Each Line In Doc.Paragraphs 
09.
    If Line.Range Like "*sehr geehrte*" Then 
10.
        Body = True 
11.
    ElseIf Line.Range Like "*mit freundlichen*" Then 
12.
        Body = False 
13.
    ElseIf Body = False Then 
14.
        Line.Range = "" 
15.
    End If 
16.
Next 
17.
     
18.
mPath = Doc.Path & "\Mail.mht" 
19.
 
20.
Doc.SaveAs FileName:=mPath, FileFormat:=wdFormatWebArchive 
21.
'Doc.Close 
22.
 
23.
Set Fso = CreateObject("Scripting.FileSystemObject") 
24.
Set mFile = Fso.OpenTextFile(mPath) 
25.
 
26.
Text = mFile.ReadAll:  mFile.Close:  Fso.DeleteFile mPath 
27.
 
28.
With Mail 
29.
   .To = "" 
30.
   .Subject = "" 
31.
   .HTMLBody = Text 
32.
End With
Gruß Dieter
Bitte warten ..
Mitglied: ShitzOvran
02.06.2009 um 11:28 Uhr
Jupp, nach längerem basteln funktioniert es jetzt auch einwandfrei. Ich hatte noch eine tabelle in meinem Text, sodass er erst fehlergemacht hat und bei der übergabe hat er mir das Format zerhauen, aber mit ein bisschen friemeln und ausprobieren hats jetzt endlich geklappt.

hier mal den auzug für den HTMLBody
01.
'* Ermitteln des HTMLBodys 
02.
 
03.
 
04.
Dim Fso As Object, mFile As Object, mPath As String 
05.
Dim Doc As Object, Lines As Object, Bodys As Boolean, Text As String 
06.
 
07.
'* Tabelle entfernen 
08.
Dim tbl As Table, trow As Row, mpty$ 
09.
mpty = "" 
10.
For Each tbl In ActiveDocument.Tables 
11.
     For Each trow In tbl.Rows 
12.
         trow.Delete 
13.
     Next trow 
14.
Next tbl 
15.
 
16.
'* Alle Buchstaben bis Makierung entfernen 
17.
Set Doc = ActiveDocument 
18.
For Each Lines In Doc.Paragraphs 
19.
    If Lines.Range Like "Sehr*" Then 
20.
        Bodys = True 
21.
    ElseIf Lines.Range Like "*Mit freundlichem Gruß*" Then 
22.
        Bodys = False 
23.
    ElseIf Bodys = False Then 
24.
        Lines.Range = Delete 
25.
    End If 
26.
Next 
27.
     
28.
mPath = ActiveDocument.Path & "\Data\TempMail.msg" 
29.
 
30.
Doc.SaveAs FileName:=mPath, FileFormat:=wdFormatFilteredHTML 
31.
 
32.
 
33.
Set Fso = CreateObject("Scripting.FileSystemObject") 
34.
Set mFile = Fso.OpenTextFile(mPath) 
35.
 
36.
Text = mFile.ReadAll 
37.
     
38.
     
39.
    With Mail 
40.
        .HTMLBody = Text 
41.
    End With 
42.
     
43.
     
44.
    Mail.Display
Bitte warten ..
Mitglied: 76109
02.06.2009 um 14:05 Uhr
Hallo ShitzOvran,

freut mich, dass es letztendlich doch noch geklappt hat

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Exchange Server
Exchange 2013 - Primäre eMail Adresse ändern (7)

Frage von staybb zum Thema Exchange Server ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...