Zeilenabstandsoptionen per Makro
#1
Hallo,
ich möchte in Outlook 2019 ein Makro ausführen, um die Zeilenabstandsoptionen zu definieren, also
>Zeilen- und Absatzabstand
   
>Abstand nach: 6 Pt
   
>OK

und hoffe, dass mir jemand helfen kann
Gruß Günther
________________________________________________________________
Windows 11 Pro Version 24H2 • Microsoft Office Professional 2019
Antworten Top
#2
Hallo Günther,

wenn Word als Edior verwendet wird, und das sieht hier so aus, dann kannst du auf das Word-Objektmodell zurückgreifen und dort den Abstand einstellen:
https://learn.microsoft.com/de-de/office...pacingrule

Knobbi38
Antworten Top
#3
Hallo Knombi38,
ich habe versucht, das Makro in Word aufzuzeichnen, abgemagert und in Outlook eingefügt:
Code:
Sub Zeilenabstand_6Pt()
    With Selection.ParagraphFormat
        .SpaceAfter = 6
    End With
End Sub

aber leider funktioniert es nicht, Debuggerfehler
Gruß Günther
________________________________________________________________
Windows 11 Pro Version 24H2 • Microsoft Office Professional 2019
Antworten Top
#4
Hallo Günther,

Zitat:... aber leider funktioniert es nicht, Debuggerfehler

so eine Fehlerbeschreibung ist nicht hilfreich und der Code alleine ist nicht aussagekräftig, damit kann Outlook nichts anfangen.

Um an den Word-Editor zu gelangen mußt, du auf die Eigenschaft WordEditor des Inspector-Objekts zugreifen, erst dann kannst du damit auf das Word-Objektmodell zugreifen, z.B. den Zeilenabstand im aktuellen Paragraph einzustellen:
https://learn.microsoft.com/de-de/office...inespacing

Alternativ könntest du evtl. auch eine entsprechende Formatvorlage verwenden.

Wie man prinzipiell ein Word-Makro in Outlook nutzen kann, ist hier beschrieben:
https://www.vboffice.net/de/developers/w...ook-nutzen

Gruß Knobbi38
[-] Folgende(r) 1 Nutzer sagt Danke an knobbi38 für diesen Beitrag:
  • Karthagos
Antworten Top
#5
Hallo Knobbi38,

wenn ich das richtig verstehe, muss ich dann das Makro in Word belassen, obwohl ich es da gar nicht brauche.
Werde es trotzdem mal probieren.
Lieber wäre mir allerdings eine Lösung direkt im Outlook VBA.
Gruß Günther
________________________________________________________________
Windows 11 Pro Version 24H2 • Microsoft Office Professional 2019
Antworten Top
#6
(17.07.2025, 15:20)Karthagos schrieb: wenn ich das richtig verstehe, muss ich dann das Makro in Word belassen, obwohl ich es da gar nicht brauche.

Nein, das geht selbstverständlich auch direkt in Outlook.

Mach ein neue Mail oder antworte auf eine bestehende, wenn Du was schreiben kannst dann wird der Word-Editor in Outlook aktiv. 
Und dann läßt Du das Makro unten einfach mal laufen.

Andreas.

Code:
Sub Test()
  Dim wdDoc As Object 'Word.Document
  With ActiveInspector
    If Not .IsWordMail Then
      MsgBox "Das geht nur wenn die eMail in HTML verfasst wird."
      Exit Sub
    End If
    Set wdDoc = .WordEditor
    wdDoc.Paragraphs.SpaceAfter = 6
  End With
End Sub
Antworten Top
#7
Hallo Andreas,

vielen Dank, so ist das schon prima. Wie kann ich noch einstellen, dass der Zeilenabstand nicht für das gesamte Dokument, sondern nur für den jeweiligen Absatz gilt.
Gruß Günther
________________________________________________________________
Windows 11 Pro Version 24H2 • Microsoft Office Professional 2019
Antworten Top
#8
Hallo Günther,

Nicht erschrecken oder missverstehen, wenn Du eine Mail schreibst, dann steckt quasi das ganze Word in der Mail drin.
Also dazu brauchst Du das Selection-Object, das gibt es nur in Word selber.

Der ActiveInspector in Outlook gibt Dir das aktuelle Outlookelement, das ist in diesem Fall die Mail.
Von dem kommst Du über .WordEditor an das Document (so wie es das Document in Word ist).
Das Document hat eine .Parent Eigenschaft, die liefert Dir Zugriff auf Word selber (die Application).
Und in der steckt das Selection Object und mit dem funktioniert der Code so wie Du ihn in Word aufgezeichnet hast.

Alles klar?

Andreas.

Code:
Sub Test()
  Dim wdApp As Object 'Word.Application
  Dim wdDoc As Object 'Word.Document
  With ActiveInspector
    If Not .IsWordMail Then
      MsgBox "Das geht nur wenn die eMail in HTML verfasst wird."
      Exit Sub
    End If
    Set wdDoc = .WordEditor
    Set wdApp = wdDoc.Parent
    wdApp.Selection.ParagraphFormat.SpaceAfter = 6
  End With
End Sub
[-] Folgende(r) 2 Nutzer sagen Danke an Andreas Killer für diesen Beitrag:
  • Karthagos, knobbi38
Antworten Top
#9
Hallo Andreas,

vielen Dank für Deine nochmaligen Erklärungen und das geänderte Makro. Jetzt ist es für mich wirklich perfekt. 98
Gruß Günther
________________________________________________________________
Windows 11 Pro Version 24H2 • Microsoft Office Professional 2019
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste