Удаление всех текстовых полей в документе (Microsoft Word)
Если вы много работаете с документами, полученными от других людей, вам может потребоваться удалить текстовые поля в этих документах. Если в документе всего одно или два текстовых поля, их несложно выделить и удалить. А что, если текстовых полей 30, 40 или больше?
Удаление их по отдельности может стать утомительным занятием.
Одно из возможных решений — метод «грубой силы». Выполните следующие действия:
-
В своем документе нажмите Ctrl + A. Выбирается весь документ.
-
Нажмите Ctrl + C. Документ теперь находится в буфере обмена.
-
Откройте новый пустой документ.
-
Убедитесь, что на ленте отображается вкладка «Главная».
-
Щелкните стрелку вниз под инструментом «Вставить» (в левой части ленты) и выберите «Специальная вставка». Word отображает диалоговое окно Специальная вставка. (См. Рис. 1.)
-
В списке форматов выберите «Неформатированный текст».
-
Щелкните ОК.
Текст документа без текстовых полей теперь находится в новом документе. Очевидный недостаток этого подхода заключается в том, что другое форматирование исходного документа также теряется, и вам необходимо переформатировать весь документ. (Я сказал вам, что это был метод грубой силы.)
Если вы хотите избавиться только от текстовых полей, самое быстрое решение — использовать макрос. Следующий макрос быстро удалит все текстовые поля в документе:
Sub RemoveTextBox1() Dim shp As Shape For Each shp In ActiveDocument.Shapes If shp.Type = msoTextBox Then shp.Delete Next shp End Sub
Вы должны понимать, что этот макрос удаляет все текстовые поля и их содержимое. Другими словами, если текстовое поле используется для размещения текста, то текст в этом текстовом поле удаляется вместе с самим текстовым полем.
Если вы предпочитаете переносить текст из текстовых полей в документ до удаления текстового поля, то небольшое изменение вышеуказанного макроса будет работать:
Sub RemoveTextBox2() Dim shp As Shape Dim oRngAnchor As Range Dim sString As String For Each shp In ActiveDocument.Shapes If shp.Type = msoTextBox Then ' copy text to string, without last paragraph mark sString = Left(shp.TextFrame.TextRange.Text, _ shp.TextFrame.TextRange.Characters.Count - 1) If Len(sString) > 0 Then ' set the range to insert the text Set oRngAnchor = shp.Anchor.Paragraphs(1).Range ' insert the textbox text before the range object oRngAnchor.InsertBefore _ "Textbox start << " & sString & " >> Textbox end" End If shp.delete End If Next shp End Sub
Когда этот макрос будет готов, вы можете выполнить поиск по запросу «Начало текстового поля», и вы окажетесь в начале текста, который раньше был в текстовых полях, которые теперь исчезли из вашего документа. Затем вы можете отредактировать текст, чтобы он выглядел так, как вы хотите. Поймите также, что все «особенное» в тексте, например таблицы, преобразуется макросом в обычный текст. Это означает, что макрос может привести к значительному объему работы, которую необходимо выполнить с форматированием переданного текста.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (9169) относится к Microsoft Word 2007, 2010 и 2013.
Вы можете найти версию этого совета для старого интерфейса меню Word здесь:
link: / word-Removing_All_Text_Boxes_In_a_Document [Удаление всех текстовых полей в документе]
.