Форум по VBA, Excel и Word

Word => Работа в программе "Word" => Тема начата: Anton от 30 января 2017, 10:24

Название: Word: Убрать поля оглавления, eq и другие
Отправлено: Anton от 30 января 2017, 10:24
Здравствуйте! Если есть поля в документе (например, оглавление), как его преобразовать в обычный текст? Приложу все-таки пример.

[вложение удалено администратором]
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Администратор от 30 января 2017, 11:20
Поля, которые у вас в файле, называются "eq". Это можно так посмотреть. Щёлкните по полю правой мышью - Коды/значения полей.
Но поля "eq" не получается преобразовать в текст обычным способом: выделить поле - Ctrl+Shift+F9.
Могу предложить такой вариант. Просто выделите фрагмент с полями, скопируйте его и вставьте как обычный текст (вкладка "Главная" - стрелка кнопки "Вставить" - Сохранить только текст).

Что касается оглавления и других полей, то их можно преобразовать в текст так: выделите фрагмент с полями - Ctrl+Shift+F9.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Anton от 30 января 2017, 12:34
Спасибо. Неудобно копировать с последующей вставкой только текста, ведь после такой вставки теряется форматирование.
А с помощью макроса можно убрать eq-поля?
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Администратор от 30 января 2017, 14:02
Макрос для eq-полей.

Макрос
Sub Макрос()

    Dim fld As Field, i As Long

   
    '1. Скрытие кодов полей, если вдруг юзер их отобразил для каких-то своих целей.
    ActiveWindow.View.ShowFieldCodes = False
   
    For i = ActiveDocument.Fields.Count To 1 Step -1
   
        '2. Присваивание программного имени полю.
        Set fld = ActiveDocument.Fields(i)
       
        ' Если это eq-поле.
        If fld.Type = wdFieldFormula Then
            '3. Выделение поля (с помощью Range не получилось работать).
            fld.Select
            '4. Копирование поля.
            Selection.Copy
            '5. Вставка поля в виде текста.
            Selection.PasteAndFormat (wdFormatPlainText)
        End If
       
    Next i
   
    '5. Сообщение, чтобы юзер понял, что макрос закончил работу.
    MsgBox "Готово.", vbInformation
   
End Sub
[свернуть]
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Anton от 30 января 2017, 14:24
Какой счастливый финал у моей печальной истории.
Огромное спасибо!
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Посетитель от 14 июля 2022, 18:13
Здравствуйте! Извините за подъем старой темы, но актуально стало сейчас попался документ надо его очистить от полей. Запускаю макрос а ошибка выходит ругается на   Selection.PasteAndFormat (wdFormatPlainText). Подскажите что не так?
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Администратор от 14 июля 2022, 18:49
Сделайте скриншот сообщения, в котором ошибка.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Посетитель от 14 июля 2022, 19:41
вот ошибка. спасибо
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Администратор от 14 июля 2022, 19:43
После ошибки что в тексте выделено? Перед ошибкой макрос выделяет. Посмотрите, что выделено.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Посетитель от 14 июля 2022, 19:45
вот желтым потом выделяет строчку
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Администратор от 14 июля 2022, 19:47
Я имел ввиду в самом документе, в тексте документа, что выделено.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Посетитель от 14 июля 2022, 19:48
в тексте выделено слово с полем
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Администратор от 14 июля 2022, 19:55
Не знаю, почему ошибка, с ходу не могу сказать.
Значит нужно что-то придумывать.
Если файл не секретный, то выложите на форуме или вышлите мне на почту, методом тыка посмотрю, что такого особого в вашем поле.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Посетитель от 14 июля 2022, 19:58
Вот файл.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Администратор от 14 июля 2022, 20:00
Какая у вас версия Офиса: 2007, 2010 и т.д.
Обновления ставили хотя бы раз после установки Офиса?
У меня макрос обработал без ошибки.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Посетитель от 14 июля 2022, 20:03
Вот какой
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Администратор от 14 июля 2022, 20:07
В ответе был ещё вопрос.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Посетитель от 14 июля 2022, 20:08
Обновления не ставил.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Администратор от 14 июля 2022, 20:10
Поставьте обновления. Иногда непонятные ошибки происходят, когда пользователь установил Офис с диска и ни разу не устанавливал обновления.
Название: Re: Word: Убрать поля оглавления, eq и другие
Отправлено: Посетитель от 14 июля 2022, 20:33
Огромное спасибо Обязательно попробую и отпишусь