Hallo miteinender,
ich kenne mich ein wenig mit VBA aus und habe nun zwei unterschiedliche Versionen in .vbs um eine E-Mail Signatur mit Daten aus dem AD zu füllen.
Bei der ersten Version ist leider viel zu viel Platzt zwischen den Tabellenzellen un dich hab keine Ahnung, wie ich die Höhe der Zellen, oder den Zeilenabstand reduzieren kann.
Version 1:
Spoiler anzeigen
Bei der zweiten Version sind die Zeilenabstände etc. perfekt, aber das Logo (.jpg) Datei wird nur als Verknüpfung eingefügt -> sprich der Empfänger der E-Mail bekommt das Logo nicht mit in der Mail:
Version 2:
Spoiler anzeigen
Kann mir jemand weiter helfen um eine der beiden Versionen so hinzubekommen, dass entweder in der .doc Variante die Zellenumrandung kleiner ist, oder der Zeilenabstand reduziert wird?
Oder in der .html Variante das Logo mit integriert wird und nicht als Verknüpfung zu der Datei auf dem Server mitgesendet wird?
Viele Grüße
Dressler01
CodeTags gesetzt und aufgrund des Codeumfangs Spoiler hinzugefügt ~VaporiZed
ich kenne mich ein wenig mit VBA aus und habe nun zwei unterschiedliche Versionen in .vbs um eine E-Mail Signatur mit Daten aus dem AD zu füllen.
Bei der ersten Version ist leider viel zu viel Platzt zwischen den Tabellenzellen un dich hab keine Ahnung, wie ich die Höhe der Zellen, oder den Zeilenabstand reduzieren kann.
Version 1:
Visual Basic-Quellcode
- On Error Resume Next
- Set objWord = CreateObject("Word.Application")
- objWord.Visible = False
- Set objDoc = objWord.Documents.Add()
- Set objSelection = objWord.Selection
- Set objEmailOptions = objWord.EmailOptions
- Set objSignatureObject = objEmailOptions.EmailSignature
- Set objSignatureEntries = objSignatureObject.EmailSignatureEntries
- Set objRange = objDoc.Range()
- objDoc.Tables.Add objRange,3,3
- Set objTable = objDoc.Tables(1)
- objTable.Columns(1).Width = 200
- objTable.Columns(2).Width = 10
- objTable.Columns(3).Width = 200
- ' Logo über Pfad einfügen (kann auch über eine Variable definiert werden)
- objTable.Cell(1, 1).Range.InlineShapes.AddPicture("C:\Logo\Logo.jpg")
- ' Text "Hallo A1 in `Feld A1`- kann irgendein Text sein und Daten können z.B. aus dem AD gezogen werden)
- objTable.Cell(2, 1).Range.Font.Name = "Arial"
- objTable.Cell(2, 1).Range.Font.Size = 11
- objTable.Cell(2, 1).Range.Font.Bold = True
- objTable.Cell(2, 1).Range.Font.Color = RGB(31, 73, 125)
- objTable.Cell(2, 1).Range.Text = "Hallo A1"
- ' Text "Hallo A3 in `Feld C3`- kann irgendein Text sein und Daten können z.B. aus dem AD gezogen werden)
- objTable.Cell(2, 3).Range.Font.Name = "Arial"
- objTable.Cell(2, 3).Range.Font.Size = 11
- objTable.Cell(2, 3).Range.Font.Bold = False
- objTable.Cell(2, 3).Range.Font.Color = RGB(31, 73, 125)
- objTable.Cell(2, 3).Range.Text = "Hallo C3"
- ' Text "Hallo A3 in `Feld A3`- kann irgendein Text sein und Daten können z.B. aus dem AD gezogen werden)
- objTable.Cell(3, 1).Range.Font.Name = "Arial"
- objTable.Cell(3, 1).Range.Font.Size = 11
- objTable.Cell(3, 1).Range.Font.Bold = True
- objTable.Cell(3, 1).Range.Font.Color = RGB(31, 73, 125)
- objTable.Cell(3, 1).Range.Text = "Hallo A3"
- ' Text "Hallo A3 in `Feld C3`- kann irgendein Text sein und Daten können z.B. aus dem AD gezogen werden + eine zweite Zeile mit zu viel Zeilenabstand)
- objTable.Cell(3, 3).Range.Font.Name = "Arial"
- objTable.Cell(3, 3).Range.Font.Size = 11
- objTable.Cell(3, 3).Range.Font.Bold = False
- objTable.Cell(3, 3).Range.Font.Color = RGB(31, 73, 125)
- objTable.Cell(3, 3).Range.Text = "Hallo C3" & chr(13) & "neue Zeile und der Zeilenabstand könnte als temporäre Lösung geringer sein"
- Set objSelection = objDoc.Range()
- objSignatureEntries.Add "MySignature", objSelection
- objSignatureObject.NewMessageSignature = "MySignature"
- objSignatureObject.ReplyMessageSignature = "MySignature"
- objDoc.Saved = True
- objWord.Quit
Bei der zweiten Version sind die Zeilenabstände etc. perfekt, aber das Logo (.jpg) Datei wird nur als Verknüpfung eingefügt -> sprich der Empfänger der E-Mail bekommt das Logo nicht mit in der Mail:
Version 2:
Visual Basic-Quellcode
- Set oWSH = CreateObject("WScript.Shell")
- fsDateiPfad = oWSH.ExpandEnvironmentStrings("%APPDATA%\")
- fsDateiPfad = fsDateiPfad & "Microsoft"
- folder = fsDateiPfad
- Set fso = CreateObject("Scripting.FileSystemObject")
- If fso.FolderExists(folder) Then 'Office installed
- 'msgbox("office installed")
- Set objSysInfo = CreateObject("ADSystemInfo")
- strUser = objSysInfo.UserName
- Set objUser = GetObject("LDAP://" & strUser)
- strMail = objUser.mail
- if strMail <> "" then 'Mailadr set
- 'Check Signature Dir exist or make it
- folder = fsDateiPfad & "\Signatures\"
- If fso.FolderExists(folder) Then 'Signatures Dir exist
- fsDateiPfad = ""
- 'msgbox("SigDir exist")
- else
- fso.CreateFolder(folder)
- 'msgbox("SigDir not exist - [" & folder & "]")
- end if
- 'Get lokal APPDATA
- Set oWSH = CreateObject("WScript.Shell")
- fsDateiPfad = oWSH.ExpandEnvironmentStrings("%APPDATA%\")
- fsDateiPfad = fsDateiPfad & "Microsoft\Signatures\"
- 'Get AccDetails
- strLogo="V:\Logo\Logo.jpg"
- signatur_conet()
- end if
- end if 'Office installed
- function signatur_conet()
- Set fsDatei = CreateObject("Scripting.FileSystemObject")
- fsDateiName = fsDateiPfad & "Signatur-" & AccName & ".htm"
- fsDatei.CreateTextFile fsDateiName
- Set fsDatei = fsDatei.getfile(fsDateiName)
- Set fsinhalt = fsDatei.OpenAsTextStream(2, -2)
- fsinhalt.write "<html>" & vbLf
- fsinhalt.write "<head>" & vbLf
- fsinhalt.write "</head>" & vbLf
- fsinhalt.write "<body>" & vbLf
- fsinhalt.write "<img src=" & strLogo & " height='50' />"
- fsinhalt.write "<br /><br />" & vbLf
- fsinhalt.write "<table border='0' style='FONT-FAMILY:""Arial"",""sans-serif"";font-size:10pt'; cellspacing=0; cellpadding=0; width=500px>" & vbLf
- fsinhalt.write " <tr>" & vbLf
- fsinhalt.write " <td colspan='3' style='font-size:10pt;font-weight:bold;color:#1F497D'>Hallo A1</td><td> </td><td style='font-size:10pt;color:#1F497D'>Hallo C1</td>" & vbLf
- fsinhalt.write " </tr>" & vbLf
- fsinhalt.write " </tr>" & vbLf
- fsinhalt.write " <tr>" & vbLf
- fsinhalt.write " <td colspan='3'> </td>" & vbLf
- fsinhalt.write " </tr>" & vbLf
- fsinhalt.write " <tr>" & vbLf
- fsinhalt.write " <td style='font-size:10pt;color:#1F497D'>Hallo A3</td><td> </td><td style='font-size:10pt;color:#1F497D'>Hallo C3</td>" & vbLf
- fsinhalt.write " </tr>" & vbLf
- fsinhalt.write "</table>" & vbLf
- fsinhalt.write "</body>" & vbLf
- fsinhalt.write "</html>"
- fsinhalt.Close
- 'Generate TXT File
- fsDateiName = fsDateiPfad & "Signatur-" & AccName & ".txt"
- Set fsDatei = CreateObject("Scripting.FileSystemObject")
- fsDatei.CreateTextFile fsDateiName
- Set fsDatei = fsDatei.getfile(fsDateiName)
- Set fsinhalt = fsDatei.OpenAsTextStream(2, -2)
- fsinhalt.write "Mit freundlichen Grüßen / Best regards" & vbLf & vbLf
- fsinhalt.write strPreName & " " & strName & " " & strSurname & vbLf
- if strTitle <> "" then
- fsinhalt.write strTitle & " / " & strDepartment & vbLf & vbLf
- else
- fsinhalt.write strDepartment & vbLf & vbLf
- end if
- end function
Kann mir jemand weiter helfen um eine der beiden Versionen so hinzubekommen, dass entweder in der .doc Variante die Zellenumrandung kleiner ist, oder der Zeilenabstand reduziert wird?
Oder in der .html Variante das Logo mit integriert wird und nicht als Verknüpfung zu der Datei auf dem Server mitgesendet wird?
Viele Grüße
Dressler01
CodeTags gesetzt und aufgrund des Codeumfangs Spoiler hinzugefügt ~VaporiZed
Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „Dressler01“ ()