2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?

Ответить
Аватара пользователя
a_axe

2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?

Сообщение a_axe »

Всем привет. Есть документ, котором после "копипастов" накопилось куча объектов типа "MicroSoft Forms 2.0 TextBox". Как их можно быстро все удалить из документа?

В интернете находил макросы для удаления "офисных" TextBox, но там используется идентификатор "msoTextBox", который текстовые поля MS Forms не воспринимает ("офисные", которые вставляются через стандартное меню Разработчика, удаляет на ура).



Пока все что могу - в режиме конструктора "в ручную" кликать мышкой там где есть (могут быть) эти объекты и удалять. Но, во-первых, это очень долго (в документе этих объектов м. б несколько десятков, а то и сотен), а во-вторых - не факт что так я найду их все (могу и пропустить, ведь поле без рамки и на белом фоне его можно не заметить).



Может есть макрос и для удаления таких объектов? Или может можно как-то их по другому быстро найти по документу, чтоб удалить?



Прилагаю сильно сокращенный пример документа (под таблицей перечислил где есть такие текстбоксы).





Пример кода для удаления "офисных" TexpBox:

[spoiler]Sub Del_WA()

Dim Shp As Shape

For Each Shp In ActiveDocument.Shapes

If Shp.Type = msoTextBox Then Shp.Delete

Next Shp

End Sub[/spoiler]
Аватара пользователя
a_axe

Re: 2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?

Сообщение a_axe »

Цитата Greyman:



Или может можно как-то их по другому быстро найти по документу, чтоб удалить?
2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?




Нажать alt+F9, потом еще можно ctrl+G , выбрать "поле".


Цитата Greyman:



Может есть макрос и для удаления таких объектов?
2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?




Попробуйте таким кодом (только не факт, что он не удалит нужное):



Код:

Код: Выделить всё

Sub field_del()
Dim f As Field
For Each f In ActiveDocument.Fields
    If f.Type = wdFieldOCX Then f.Delete
Next f
End Sub

Greyman, проверьте личку.
Аватара пользователя
Greyman

Re: 2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?

Сообщение Greyman »

Цитата a_axe:



Нажать alt+F9, потом еще можно ctrl+G , выбрать "поле".
2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?




Что должно делаться по Alt+F9? У меня ничего не происходит.

И какое поле надо искать после Ctrl-G? Не вижу там ничего подходящего.




Цитата a_axe:



Попробуйте таким кодом (только не факт, что он не удалит нужное):
2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?




А вот за макрос - спасибо! Работает!



Только он удаляет не одни только "мои текстбоксы". Но на его базе нашел в инете вариант модернизации:





Код:

Код: Выделить всё

'Only fields that are activex controls
        If f.Type = wdFieldOCX Then
            'only activex controsl that are textboxes
            If TypeOf f.OLEFormat.Object Is MSForms.TextBox Then f.Delete
        End If
Аватара пользователя
Iska

Re: 2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?

Сообщение Iska »

Цитата Greyman:



Что должно делаться по Alt+F9?
2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?




Отображаться поля в виде кодов, а не содержимого.




Цитата Greyman:



Но на его базе нашел в инете вариант модернизации:
2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?




Да, примерно так.
Аватара пользователя
Greyman

Re: 2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?

Сообщение Greyman »

Цитата Iska:



Отображаться поля в виде кодов, а не содержимого.
2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?




Точно, ступил...Изображение Не смотрел при этом на страницу с этими полями.
Аватара пользователя
a_axe

Re: 2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?

Сообщение a_axe »

Цитата Greyman:



И какое поле надо искать после Ctrl-G?
2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?




Если оставить просто пустое окошко - диалог найдет любое ближайшее поле. Например - если у вас поля в середине документа, включаете отображение кодов полей и переходите к ближайшему, потом - к следующему и т.д. (вместо того чтобы мотать документ и искать "глазами" ).
Аватара пользователя
Greyman

Re: 2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?

Сообщение Greyman »

Цитата a_axe:



Если оставить просто пустое окошко - диалог найдет любое ближайшее поле. Например - если у вас поля в середине документа, включаете отображение кодов полей и переходите к ближайшему, потом - к следующему и т.д. (вместо того чтобы мотать документ и искать "глазами" ).
2016 - [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?




Ок .Спасибо. Может и пригодится.

Но в данном случае это мало поможет - там несколько сотен страниц с кучей перекрестных ссылок и автоматической нумерации таблиц и рисунков - устанешь кнопку нажимать...Изображение Да и пропустить там можно "на автомате" то что нужно.

Скрипт гораздо удобнее - правда очень сильно выручил...



P.S.

Кста, все началось из-за того, что при наличии в документе таких полей с ним не работает совместный доступ (по крайней мере на 2010 "шарике"). Пришлось повозиться пока я это обнаружил (удалял куски документа - так и нашел). Может кому тоже поможет в похожей ситуации...
Ответить

Вернуться в «Microsoft Office (Word, Excel, Outlook и т.д.)»