Ralph schreibt Dokumente, die bestimmte Alpha-Zeichen benötigen, links von jedem Absatz. Diese Buchstaben sollten ähnlich wie Zeilennummern am Rand erscheinen. Die Zeichen sind normalerweise für das gesamte Dokument gleich, dh sie ändern sich nicht von Absatz zu Absatz. Ralph fragt sich, ob es eine Möglichkeit gibt, diese Zeichen automatisch neben jedem Absatz einzufügen.

Es gibt einige Ansätze, mit denen Sie dies erreichen können.

Zuerst können Sie das Alpha-Zeichen am Anfang jedes Absatzes eingeben und die Tabulatortaste drücken. Formatieren Sie dann den Absatz so, dass ein hängender Einzug verwendet wird, der die erste Zeile etwas in den linken Rand einfügt. Dies könnte leicht mit Stilen geschehen, die auf die Absätze angewendet werden könnten.

Wenn Sie viele Absätze haben, mit denen Sie dies tun möchten, kann es mühsam sein, das Alpha-Zeichen einzugeben und für jeden Absatz die Tabulatortaste zu drücken.

Glücklicherweise ist es einfach, ein Makro zu erstellen, das die Langeweile für Sie erledigt.

Sub FmtParagraphs()

Dim p As Paragraph

For Each p In ActiveDocument.Content.Paragraphs         If p.Style = "MyAlpha" Then             With p.Range                 .InsertBefore "R" & Chr(9)

End With         End If     Next p End Sub

Das Makro sucht nach einem beliebigen Absatz im Dokument, der den MyAlpha-Stil verwendet. (Dies setzt voraus, dass MyAlpha „der spezielle Stil für hängende Einrückungen ist, den Sie für diesen Ansatz erstellt haben.) Wenn einer gefunden wird, wird der Buchstabe“ R „vor dem Absatz und dann ein Tabulatorzeichen eingefügt. Sie können dieses Makro leicht ändern Um nach einem anderen Stilnamen zu suchen oder ein anderes Alpha-Zeichen hinzuzufügen.

Ein ähnlicher Ansatz besteht darin, einen Stil zu definieren, der eine geänderte Liste mit Aufzählungszeichen verwendet. Anstelle eines regulären Aufzählungszeichens können Sie auch definieren Die Liste, in der das Alpha-Zeichen als Aufzählungszeichen verwendet wird. Wenn Sie den Stil auf die Absätze anwenden, wird das Alpha-Zeichen automatisch angezeigt, und Sie müssen es nicht eingeben oder die Registerkarte, um es vom Hauptteil des Absatzes zu trennen.

Beide bisher genannten Ansätze funktionieren schnell und einfach für relativ einfache Dokumente. Sie funktionieren jedoch nicht, wenn Ihre Dokumente regelmäßig nummerierte Listen oder Listen mit Aufzählungszeichen enthalten. In diesem Fall müssen Sie dies tun Verwenden Sie einen anderen Ansatz – einen, für den Textfelder verwendet werden die Platzierung des Alpha-Zeichens.

Der Grund, warum dieser Ansatz für komplexe Dokumente vorzuziehen ist, ist, dass er nicht auf Stilen basiert. Das bedeutet, dass Sie in Ihren Dokumenten eine Vielzahl von nummerierten Listen und Listen mit Aufzählungszeichen haben können, die Alpha-Zeichen jedoch links neben jedem Absatz am Rand stehen.

Außerdem können die Textfelder so formatiert werden, dass sie in jedem Absatz verankert sind und mit dem Absatz verschoben werden, wenn Word das Dokument neu definiert.

Wenn Sie ein Dokument mit 300 Absätzen haben, kann das Hinzufügen von Textfeldern zu jedem Absatz natürlich mühsam sein, ganz zu schweigen von der Qual, wenn Sie mit dem Formatieren der einzelnen Textfelder beginnen. Auch hier können Makros helfen, die Langeweile zu lindern. Das folgende Makro kann verwendet werden, um ein ausgewähltes Textfeld automatisch in alle anderen Absätze eines Dokuments zu kopieren.

Sub TextBoxesInMargin()

Dim aShape As Shape     Dim aPara As Paragraph     Dim j As Long     Dim shpTop As Single     Dim shpLeft As Single     Dim aRange As Range

If ActiveDocument.Shapes.Count = 0 Then GoTo noTextbox     If Selection.ShapeRange.Count <> 1 Then GoTo noTextbox

Set aShape = Selection.ShapeRange(1)

With aShape         If .Type <> msoTextBox Then GoTo noTextbox         If aShape.RelativeVerticalPosition <> wdRelativeVerticalPositionParagraph Then             MsgBox "The text box must be positioned relative to a paragraph"

Exit Sub         End If         shpTop = .Top         shpLeft = .Left         aShape.Select         Selection.Copy     End With

For Each aPara In ActiveDocument.Paragraphs         Set aRange = aPara.Range         If Len(aRange.Text) > 1 Then ' only non blank paragraphs             aRange.Select             Selection.Paste             Selection.ShapeRange.Top = shpTop             Selection.ShapeRange.Left = shpLeft         End If     Next aPara     Exit Sub

noTextbox:

MsgBox "Text box is not selected"

End Sub

Um das Makro zu verwenden, formatieren Sie ein einzelnes kleines Textfeld, in dem sich Ihr Alpha-Zeichen befindet. Stellen Sie sicher, dass das Textfeld an dem Absatz verankert ist, neben dem Sie es platzieren, und dass seine Position relativ zum Absatz korrekt ist. Wenn das Textfeld genau so aussieht, wie Sie es möchten, wählen Sie es aus und führen Sie das Makro aus. Das Textfeld wird neben jedem anderen Absatz im Dokument kopiert und eingefügt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (12738) gilt für Microsoft Word 2007, 2010, 2013, 2016, 2019 und Word in Office 365.