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

Например, предположим, что вы хотите получить доступ к каждому абзацу документа по очереди и выполнить некоторую обработку текста в этом абзаце.

Поскольку каждый абзац представляет собой отдельный объект в документе, это относительно просто. Все объекты абзаца доступны как часть коллекции Paragraphs. Следующий код поможет вам:

iParCount = ActiveDocument.Paragraphs.Count For J = 1 To iParCount     sMyPar = ActiveDocument.Paragraphs(J).Range.Text     [Add processing comments to manipulate sMyPar]

ActiveDocument.Paragraphs(J).Range.Text = sMyPar Next J

Первая строка кода устанавливает iParCount равным количеству абзацев в текущем документе. Цикл, начинающийся во второй строке, затем выполняет основную работу в макросе. Третья строка устанавливает строку sMyPar, равную тексту в указанном абзаце. (Когда J равно 1, вы работаете с первым абзацем. Когда J равно 2, это второй абзац и так далее.)

После завершения обработки sMyPar следующая строка устанавливает текст документа, равный измененному тексту в строке sMyPar.

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

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

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

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

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (823) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

link: / wordribbon-Accessing_Paragraphs_in_a_Macro [Доступ к абзацам в макросе].