Ральф пишет документы, которые требуют определенных буквенных символов слева от каждого абзаца. Эти буквы должны появиться на полях, как номера строк. Символы обычно одинаковы для всего документа, то есть они не меняются от абзаца к абзацу. Ральф интересуется, есть ли способ автоматически вставлять эти символы рядом с каждым абзацем.

Есть несколько подходов, которые вы можете использовать для этого.

Во-первых, вы можете ввести альфа-символ в начале каждого абзаца и нажать клавишу TAB. Затем отформатируйте абзац так, чтобы в нем использовался выступ, который немного помещал первую строку в левое поле. Это можно легко сделать с помощью стилей, которые можно применить к абзацам.

Если у вас есть много абзацев, с которыми вы хотите сделать это, может быть утомительно набирать альфа-символ и нажимать Tab для каждого абзаца.

К счастью, легко создать макрос, который позаботится о вас.

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

Макрос ищет любой абзац в документе, в котором используется стиль MyAlpha. (Предполагается, что MyAlpha «является специальным стилем висячего отступа, который вы создали для реализации этого подхода.) Когда он находит, он вставляет букву» R «перед абзацем, а затем символ табуляции. Вы можете легко изменить этот макрос для проверки имени другого стиля или добавления другого альфа-символа.

Аналогичный подход заключается в определении стиля, который использует измененный маркированный список. Вместо использования обычного маркера вы можете определить список для использования альфа-символа в качестве маркера.При применении стиля к абзацам альфа-символ будет отображаться автоматически, и вам не нужно будет вводить его или табуляцию, чтобы отделить его от основной части абзаца.

|||| Оба упомянутых выше подхода работают быстро и легко для относительно простых документов. Однако они не будут работать, если ваши документы содержат обычные нумерованные или маркированные списки. В этом случае вам потребуется использовать другой подход — тот, который полагается на текстовые поля для размещение альфа-символа.

Причина, по которой этот подход может быть предпочтительнее для сложных документов, заключается в том, что он не полагается на стили. Это означает, что у вас может быть широкий спектр нумерованных и маркированных списков в ваших документах, но при этом альфа-символы по-прежнему будут располагаться слева от каждого абзаца на полях.

Кроме того, текстовые поля можно отформатировать так, чтобы они были привязаны к каждому абзацу и перемещались вместе с абзацем по мере того, как Word репагинирует документ.

Конечно, если у вас есть документ, в котором есть 300 абзацев, добавление текстовых полей к каждому абзацу может быть утомительным, не говоря уже о мучительном, когда вы начинаете форматировать каждое текстовое поле. Опять же, макросы могут помочь избавиться от скуки. Следующий макрос можно использовать для автоматического копирования выделенного текстового поля во все остальные абзацы документа.

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

Чтобы использовать макрос, отформатируйте одно небольшое текстовое поле, чтобы оно содержало ваш альфа-символ. Убедитесь, что текстовое поле привязано к абзацу, рядом с которым вы его разместили, и что его положение правильное относительно абзаца. Когда текстовое поле будет выглядеть именно так, как вы хотите, выберите его и запустите макрос. Текстовое поле копируется и вставляется рядом с каждым другим абзацем в документе.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (12738) относится к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.