Доступ к абзацам в макросе (Microsoft Word)
Одна из замечательных особенностей программирования макросов 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.
Однако выполнение приведенного выше кода занимает довольно много времени. Было бы быстрее получить доступ к коллекции Paragraphs, используя цикл For Each, как показано здесь:
For Each p In ActiveDocument.Paragraphs sMyPar = p.Range.Text [Add processing comments to manipulate sMyPar] p.Range.Text = sMyPar Next p
Вы можете сделать свой код еще быстрее, если вы измените абзацы только в том случае, если ваша обработка указывает на необходимость изменения.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (12177) применим к Microsoft Word 2007, 2010, 2013 и 2016. Вы можете найти версию этого совета для старого интерфейса меню Word здесь:
link: / word-Accessing_Paragraphs_in_a_Macro [Доступ к абзацам в макросе]
.