Vba word выделить страницу
Как выделить все объекты Word в Word?
Иногда мы вставляем некоторые объекты текстового документа в документ Word. Как выделить все вставленные объекты текстового документа в Word? Это руководство поможет вам выбрать все встроенные объекты документа Word.
Рекомендуемые инструменты повышения производительности для Word
Выберите все встроенные объекты текстовых документов с помощью VBA
Удивительный! Используйте эффективные вкладки в Word (Office), например Chrome, Firefox и New Internet Explorer!
Вместо того, чтобы выбирать по одному, VBA - более простой способ выбрать все встроенные объекты текстового документа.
Код VBA может выбрать все встроенные объекты документа Word, сделайте следующее:
Шаг 1: нажмите Alt + F11 открыть окно VBA;
Шаг 2: нажмите Модули из Вставить вкладка, поместите код в Модули окно;
Шаг 3: нажмите Run или нажмите F5 применить VBA.
Код VBA для выбора всех объектов текстового документа:
Sub SelectAllEmbedWordObject ()
Dim tempTable как InlineShape
Приложение.ScreenUpdating = False
ActiveDocument. DeleteAllEditableRanges wdEditorEveryone
Для каждой таблицы tempTable в ActiveDocument.InlineShapes
Если InStr (tempTable.OLEFormat.ProgID, "Word") = 1 Тогда
tempTable.Range.Paragraphs (1) .Range.Editors.Add wdEditorEveryone
End If
Далее
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
ActiveDocument. DeleteAllEditableRanges wdEditorEveryone
Application.ScreenUpdating = True
End Sub
Выберите все встроенные объекты документа Word с помощью Kutool for Word
На самом деле, есть более удобный и быстрый способ выделить все вставленные объекты текстового документа в Word. Вам не нужно изучать VBA. После установки Kutool for Word только один щелчок мыши поможет вам быстро выбрать все встроенные объекты документа Word во всем документе или в выделенном фрагменте.
Kutools for Word, удобная надстройка, включает группы инструментов, облегчающих вашу работу и расширяющих ваши возможности обработки текстовых документов. Бесплатная пробная версия на 45 дней! Get It Now!
Нажмите Кутулс > нажмите Выбор абзаца в группе абзацев> щелкните Выбрать все абзацы вложенных объектов Word из раскрывающегося списка. Смотрите скриншот:
Примечание: если вы сначала сделаете выделение в документе, этот инструмент выберет только все объекты встроенного текстового документа из выделения.
Для получения более подробной информации о Выберите "Вставить абзацы объекта Word" Kutools for Word. пожалуйста, посетите: Выбор абзаца описание функции
Представляет текущий выделенный фрагмент в окне или области. Выделенный фрагмент представляет выбранную (или выделенную) область в документе или представляет точку вставки, если в документе ничего не выбрано. В области окна документа может быть только один объект Selection, а в приложении только один объект Selection может быть активным.
Этот метод изменился. При использовании команд выделения VBA, таких как Selection.BoldRun , для выделения пользователей с примечаниями больше не применяется полужирное форматирование для текста, выделенного пользователем, или для команды Selection.TypeTxt ; также при выделении пользователей с примечаниями больше не вставляется текст.
Примечания
Используйте свойство Selection, чтобы возвратить объект Selection. Если для свойства Selection не используется квалификатор объекта, Microsoft Word возвращает выделение из активной области окна активного документа. В следующем примере копируется текущий выделенный фрагмент из активного документа.
В следующем примере удаляется выделенный фрагмент из третьего документа в коллекции Documents. Документ необязательно должен быть активен для доступа к текущему выделенному фрагменту.
В следующем примере показано, как скопировать выделенный фрагмент из первой области активного документа и вставить его во вторую область.
Свойство Text является свойством по умолчанию объекта Selection. Используйте это свойство, чтобы задать или вернуть текст в текущем выделенном фрагменте. В следующем примере текст в текущем выделенном фрагменте назначается переменной strTemp , после чего удаляется последний символ, если он является знаком абзаца.
Объект Selection содержит различные методы и свойства, с помощью которых можно свернуть, развернуть или иным способом изменить текущий выделенный фрагмент. В следующем примере точка вставки перемещается в конец документа и выбираются последние три строки.
Объект Selection содержит различные методы и свойства, с помощью которых можно редактировать выделенный текст в документе. В следующем примере показано, как выделить первое предложение в активном документе и заменить его новым абзацем.
В следующем примере удаляется последний абзац первого документа в коллекции Documents, который затем добавляется в начало второго документа.
Объект Selection содержит различные методы и свойства, с помощью которых можно изменить форматирование текущего выделенного фрагмента. В следующем примере показано, как изменить шрифт текущего выделения с Times New Roman на Tahoma.
Используйте такие свойства, как Flags, Information и Type, чтобы получить сведения о текущем выделенном фрагменте. Используйте следующий пример в процедуре, чтобы определить, есть ли в активном документе выделенный фрагмент; при его отсутствии оставшаяся часть процедуры пропускается.
Даже если выделенный фрагмент свертывается в точку вставки, он не обязательно должен быть пустым. Например, свойство Text будет по-прежнему возвращать символ справа от точки вставки; этот символ также отображается в коллекции Characters объекта Selection. Однако вызов методов, таких как Cut или Copy, из свернутого выделения приводит к ошибке.
Пользователь может выделить область в документе, не представляющую смежный текст (например, при использовании клавиши ALT с кнопкой мыши). Так как поведение такого выделения может быть непредсказуемым, можно включить в код шаг, который проверяет свойство Type выделенного фрагмента перед выполнением каких-либо операций над ним ( Selection.Type = wdSelectionBlock ).
Аналогично, выделенный фрагмент, включающий ячейки таблицы, также может привести к непредсказуемому поведению. Свойство Information сообщит, находится ли выделенный фрагмент в таблице ( Selection.Information(wdWithinTable) = True ). В следующем примере определяется, является ли выделенный фрагмент нормальным (например, это не строка или столбец в таблице, не является вертикальным блоком текста); его можно использовать для тестирования текущего выделенного фрагмента перед выполнением каких-либо действий над ним.
Объекты Range используют много таких же методов и свойств, что и объекты Selection, поэтому использование объектов Range предпочтительнее для управления документом, если нет причин физически изменять текущий выделенный фрагмент. Дополнительные сведения об объектах Selection и Range содержатся в статьях Работа с объектом Selection и Работа с объектами Range.
Методы
Свойства
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Visual Basic включает объекты, которые можно использовать для изменения следующих элементов документа: символов, слов, предложений, абзацев и разделов. В следующей таблице содержатся свойства, соответствующие этим элементам документа, и возвращаемые ими объекты.
Это выражение | Возвращает этот объект |
---|---|
Слова ( индекс) | Диапазон |
Символы ( индекс) | Диапазон |
Предложения ( индекс) | Диапазон |
Абзацы ( индекс) | Paragraph |
Разделы ( индекс) | Section |
Когда эти свойства используются без индекса, возвращается объект коллекции с таким же именем. Например, свойство Paragraphs возвращает объект коллекции Paragraphs . Однако при определении элемента в этих коллекциях по индексу возвращается объект во втором столбце таблицы. Например, Words(1) возвращает объект Range . После того как у вас есть объект Range , вы можете использовать любые свойства диапазона или методы для изменения объекта Range . Например, следующая инструкция копирует первое слово в выборе в буфер обмена.
Примечание Элементы в коллекциях Параграфы и Разделы — это особые формы коллекции, в частности объекты Paragraph и Объекты Section, а не объекты Range. На самом деле большинство коллекций в объектной модели Word имеют объекты единой формы, с которыми можно работать. Однако свойство Range (которое возвращает объект Range ) доступно как для объекта Paragraph , так и для объекта Section , а также для большинства других объектов, которые являются детьми коллекций. Например, следующая инструкция копирует первый абзац в активном документе в буфер обмена.
Все свойства элементов документа в предыдущей таблице доступны в объектах Document, Selection и Range . В следующих примерах показано, как можно сверлить эти свойства из объектов Document, Selection и Range . В следующем примере приводится пример первого слова в активном документе.
В следующем примере нижний предел текущего раздела устанавливается до 0,5 дюйма.
В следующем примере дважды пробелы текста в активном документе (свойство Content возвращает объект Range ).
Изменение группы элементов документа
Чтобы изменить диапазон текста, состоящий из группы элементов документа (символов, слов, предложений, абзацев или разделов), необходимо создать объект Range . Метод Range создает объект Range с точки запуска и конечной точки. Например, в следующей инструкции создается объект Range , который ссылается на первые десять символов в активном документе.
С помощью свойств Start и End с объектом Range можно создать новый объект Range , который относится к группе элементов документа. Например, в следующей инструкции создается объект Range ( rngThreeWords ), который ссылается на первые три слова в активном документе.
В следующем примере создается объект Range ( rngParagraphs ), начинающийся в начале второго абзаца и заканчивающийся после третьего абзаца.
Дополнительные сведения о определении объектов Range см. в ссылке Работа с объектами Range.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Как выбрать в Word диапазон страниц из всего документа?
Если вы хотите выбрать любые диапазоны страниц в документе Word, сколькими способами вы можете это сделать? Теперь я предлагаю вам несколько уловок для выбора диапазона страниц в Microsoft Word.
If you want to select a range of pages or specific pages from a Word document, Kutools for Word's Select Pages feature can help you to select any page that you need.
Kutools for Word: with more than 100 handy Word add-ins, free to try with no limitation in 60 days. Click to Download and free trial Now!
Выберите диапазон страниц, удерживая Shift в Word
Нажмите в начале страницы и удерживайте Shift, прокрутите до конца страницы и щелкните в конце содержимого этой страницы. Теперь страницы выбраны.
Выберите диапазон страниц с помощью VBA
1, нажмите Alt + F11 для открытия Microsoft Visual Basic для приложенийокно s;
2. Нажмите Модули из Вставить вкладку, скопируйте и вставьте следующий код VBA в Модули окно;
Код VBA: выберите диапазон страниц из документа Word:
3, нажмите F5 для запуска этого кода сразу выбираются страницы со страницы 2 по страницу 6.
Внимание: Здесь вы можете изменить Количество: = 2 и Количество: = 6 чтобы удовлетворить ваши потребности. В этом коде VBA мы выбираем диапазон страниц от страницы 2 до страницы 6.
Выберите диапазон страниц с помощью Kutools for Word
С помощью Kutools for Word's Выбрать страницы Утилита, вы можете быстро выбрать любые диапазоны страниц в документе. Всего один щелчок мыши поможет вам завершить выбор страницы.
1. Нажмите Кутулс > Разделы > Выбрать страницы, см. снимок экрана:
2. Во всплывающем диалоговом окне вы можете указать диапазон страниц, введя число в поле под Выберите страницы в соответствии с разделом диапазона. Или вы можете выбрать определенные страницы по своему усмотрению в Выбрать страницы в соответствии с выбором список. Смотрите скриншот:
3. Нажмите OK or Применить кнопку, чтобы выбрать желаемые страницы.
Демонстрация: выбор диапазона страниц из документа Word
Kutools for Word: с более чем 100 удобными надстройками Word, которые можно попробовать бесплатно без ограничений в течение 60 дней. Загрузите и бесплатную пробную версию прямо сейчас!
Для начала давайте вспомним, что выделение фрагмента текста осуществляется следующим образом: в большинстве случаев нужно выбрать несколько фрагментов, для этого сначала выбираем один нужный фрагмент, далее удерживаем клавишу " Ctrl " и выбираем остальные фрагменты. Теперь перейдем к теме публикации…
Методы Insert… – выделение фрагментов текста в Word
Примеры будут как для редактора VBA, так и для сценариев Windows Script Host, и так, начнем…
Методы с префиксом Insert. позволяют вставить текст в документ:
InsertAfter (text) и InsertBefore (text) – Вставка текста (text) в конец или в начало выделения. При отсутствии выделения вставка производится там, где находится курсор. Сам материал остается выделенным.
InsertBreak (type) - Вставляет страницу, колонку или секцию. Параметр type содержит значение константы WdBreakType:
- wdTextWrappingBreak - 11 - Конец текущей строки и продолжение вставки ниже изображения, таблицы или другого объекта. Материал продолжается на следующей пустой строке, которая не содержит таблицу, совмещенную с левой или правой границей.
- wdLineBreakClearRight - 10 - Перевод на новую строку.
- wdLineBreakClearLeft - 9 - Перевод на новую строку.
- wdColumnBreak - 8 - Разрыв колонки.
- wdPageBreak - 7 - Вставка новой страницы.
- wdLineBreak - 6 - Перевод на новую строку.
- wdSectionBreakOddPage - 5 - Начало нового раздела со следующей нечетной страницы.
- wdSectionBreakEvenPage - 4 - Начало нового раздела со следующей четной страницы.
- wdSectionBreakContinuous - 3 - Новый раздел без разрыва страницы.
- wdSectionBreakNextPage - 2 - Начало нового раздела со следующей страницы.
Прежде чем приступать к программированию, стоит сделать некоторое пояснение. По сути, ряд действий будут всегда одинаковыми – создание нового документа (за это будет отвечать функция или процедура Create_Doc). Изменяться будут только вызываемые методы.
Программный код на VBScript :
' ---------------------------------------------------------------------------- ' Объект Word Selection - методы ' Пример на языке VBScript - выделение фрагментов Word текста ' Selection-1.vbs ' ---------------------------------------------------------------------------- Option Explicit ' Глобальные переменные dim oWord, oDoc, oSel, i ' Процедура создания нового документа Sub Create_Doc() Set oWord = CreateObject("Word.Application") Set oDoc = oWord.Documents oDoc.Add() Set oSel = oWord.Selection oWord.Visible = True End Sub Sub Insert_After_Before() With oSel .Text = "как выделить фрагмент текста " .InsertAfter " . Конец" .InsertBefore "Начало. " .EndOf .InsertBreak 6 End With End Sub call Create_Doc call Insert_After_Before
Давайте посмотрим, что данный пример делает. При вызове процедуры Insert_After_Before происходит добавление в документ текстовой строки, далее в конец добавляется фраза " . Конец", а в начало - "Начало. ". Потом происходит перевод курсора в конец и добавление перевода строки.
Пример на JScript :
Для VBA мы просто запускаем редактор кода, добавляем новый модуль и прописываем код, в моем случае имя модуля - Module1:
Sub Module1() ' ---------------------------------------------------------------------------- ' выделение в Word фрагментов текста ' ---------------------------------------------------------------------------- Dim oWord1 As Object, oDoc1 As Object, oSel1 As Object, i Set oWord1 = CreateObject("Word.Application") Set oDoc1 = oWord1.Documents oDoc1.Add Set oSel1 = oWord1.Selection oWord1.Visible = True '*************************************** With oSel1 .Text = "как выделить фрагмент текста " .InsertAfter " . Конец" .InsertBefore "Начало. " .EndOf .InsertBreak wdLineBreak End With '*************************************** End Sub
И так, с одной теоретической частью мы закончили и написали программный код, теперь можно приступить к следующей части.
Методы Insert… – выделение фрагментов текста в Word
InsertCaption (Label, Title, TitleAutoText, Position, ExcludeLabel) - Вставляет заголовок сразу после или перед указанным выбором. Обязательным является только параметр Label.
Label – Нумерационный заголовок. Параметр может быть строкой или значением константы WdCaptionLabelID:
- wdCaptionEquation - Уравнение
- wdCaptionFigure - Рисунок
- wdCaptionTable – Таблица
Если метка (Label) не определена, то возникнет ошибка. Для определения метки надо использовать метод Add коллекции CaptionLabels , например:
Title – Заголовок, который будет отображаться справа от метки.
TitleAutoText – Авто-заголовок, перекрывает параметр Title.
Position - Указывает, будет ли вставлен заголовок выше или ниже. Может быть одной из констант WdCaptionPosition:
- wdCaptionPositionAbove - 0 - Метка название добавляется выше.
- wdCaptionPositionBelow - 1 - Метка название добавляется ниже.
ExcludeLabel - TRUE - отключить метку, заданную в параметре Label. FALSE - включить метку. Дополнительно.
Ниже я приведу примеры, что бы не дублировать программный код, я привел только содержимое процедуры Sub Insert_Caption.
' VBScript Sub Insert_Caption() oWord3.CaptionLabels.Add "Номер" For i = 0 To 10 oSel3.InsertCaption "Номер", " как выделять фрагменты текста " & i oSel3.InsertBreak 6 Next End Sub
Тут используется цикл for для вставки нескольких фрагментов - "Урок 6 по VBScript: Циклы for…next и for each…next".
Тут тоже используется цикл for, но уже для JS кода - "Урок 9 по JScript - оператор цикла for".
' VBA oWord5.CaptionLabels.Add "Номер" For i = 0 To 10 oSel5.InsertCaption Label:="Номер", Title:=" Фраза VBA Selection " & i oSel5.InsertBreak wdLineBreak Next
Обратите внимание, что имена переменных в примерах отличаются, это пришлось сделать с технических причин – в глазах поисковых систем статья становится заспамленой. Хорошо, давайте двигаться дальше.
Методы Insert… – выделение фрагментов текста в Word
InsertDateTime (DateTimeFormat) – Метод позволяет вставить дату или время в документ, или одновременно оба значения. Помимо параметра DateTimeFormat есть еще четыре, но они практически не используются.
DateTimeFormat – Необязательный параметр, позволяет указать формат даты и времени.
' VBScript Sub Insert_Date With oSel4 .Text = "как выделить фрагмент текста " .EndOf .InsertBreak 6 .InsertDateTime .InsertBreak 6 .InsertDateTime "MMMM dd, yyyy" .InsertBreak 6 .InsertDateTime "MMMM dd, yyyy - H:M:S" End With End Sub
Обратите внимание на оператор with, он позволяет не писать каждый раз имя класса.
Тут логика работы аналогична.
' VBA With oSel5 .Text = " как выделить в Word фрагмент текста " .EndOf .InsertBreak wdLineBreak .InsertDateTime .InsertBreak wdLineBreak .InsertDateTime "MMMM dd, yyyy" .InsertBreak wdLineBreak .InsertDateTime "MMMM dd, yyyy - H:M:S" End With
Хорошо, осталось рассмотреть последнюю третью часть статьи.
Методы Insert… – выделение фрагментов текста в Word
InsertFile (FileName) – Позволяет вставить содержимое указанного файла в документ, параметр FileName хранит имя или путь к файлу, если путь отсутствует, то будет подразумеваться текущий каталог.
InsertNewPage - Вставляет новую страницу в место, где находится указатель.
InsertParagraph - Заменяет выделение знаком абзаца.
InsertParagraphAfter - Вставляет знак абзаца после выделения .
InsertParagraphBefore - Вставляет новый абзац перед выделением.
Методы с префиксом Move. также встречаются едва ли не в любой программе, связанной с вводом текста в Word. Самые важные и удобные из этих методов:
MoveLeft (), MoveRight (), MoveUp (), MoveDown () – Методы дают возможность переместить курсор влево, вправо, вверх и вниз. Все четыре метода принимают следующие параметры (Unit, Count, Extend), являющиеся необязательными:
Unit - Блок, по которым выбор должен быть перемещен. Параметр Unit содержит значения константы wdUnits.
Count – Единица перемещения. Значение по умолчанию 1.
Extend - Может быть либо wdMove (по умолчанию) или wdExtend.
MoveEnd (), MoveStart () – Перемещение курсора в конец или начало выделения, параметры - Unit, Count.
MoveStartUntil (), MoveStartWhile (), MoveEndUntil (), MoveEndWhile () – Позволяют переместить курсор к заданному символу или последовательности символов. Параметры Cset (обязательный) и Count (дополнительный):
Cset - Один или несколько символов. Аргумент является чувствительным к регистру.
Count – Задает целое или отрицательное значение, на которое происходит перемещение курсора.
Move (Unit, Count) – Фактически, тут мы может указать направление (Count) и текстовую единицу (Unit).
Логика работы для следующих примеров остается та же – меняется только код вызываемой процедуры. Фактически, код для языка VBScript и VBA является идентичным.
' VBScript Sub Get_Move() With oSel6 ' вставляем в документ фразу сто раз For i = 0 To 10 .Text = "как выделить фрагменты нужного текста " ' Перемещаем курсор в конец .EndOf Next For i = 0 To 300 .MoveLeft Next For i = 0 To 100 .MoveRight Next For i = 0 To 4 .MoveUp Next .MoveStartUntil "Word" For i = 0 To 15 .Move 2, 5 Next End With End Sub
Видим, что в данном коде мы использовали несколько операторов for.
Обратите внимание на приведенные в самом начале статьи примеры кода для языков VBA и VBScript, в макросе мы можем использовать именованные константы объекта Word, но в теле Windows Script Host сценария нет, так как там они не доступны. Описание свойств класса Selection я рассмотрел в этой статье.
Спасибо за внимание. Автор блога Владимир Баталий
Читайте также: