Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа? (http://forum.oszone.net/showthread.php?t=348336)

Greyman 22-03-2021 16:30 2953653

Word - MicroSoft Forms 2.0 TextBox - как удалить все из документа?
 
Вложений: 1
Всем привет. Есть документ, котором после "копипастов" накопилось куча объектов типа "MicroSoft Forms 2.0 TextBox". Как их можно быстро все удалить из документа?
В интернете находил макросы для удаления "офисных" TextBox, но там используется идентификатор "msoTextBox", который текстовые поля MS Forms не воспринимает ("офисные", которые вставляются через стандартное меню Разработчика, удаляет на ура).

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

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

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

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

Sub Del_WA()
Dim Shp As Shape
For Each Shp In ActiveDocument.Shapes
If Shp.Type = msoTextBox Then Shp.Delete
Next Shp
End Sub

a_axe 22-03-2021 17:12 2953655

Цитата:

Цитата Greyman
Или может можно как-то их по другому быстро найти по документу, чтоб удалить? »

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

Цитата Greyman
Может есть макрос и для удаления таких объектов? »

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

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 24-03-2021 19:52 2953817

Цитата:

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

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

Цитата:

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

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

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

Код:

'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 24-03-2021 21:51 2953829

Цитата:

Цитата Greyman
Что должно делаться по Alt+F9? »

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

Цитата:

Цитата Greyman
Но на его базе нашел в инете вариант модернизации: »

Да, примерно так.

Greyman 25-03-2021 09:58 2953850

Цитата:

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

Точно, ступил...:( Не смотрел при этом на страницу с этими полями.

a_axe 25-03-2021 10:04 2953851

Цитата:

Цитата Greyman
И какое поле надо искать после Ctrl-G? »

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

Greyman 29-03-2021 15:25 2954260

Цитата:

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

Ок .Спасибо. Может и пригодится.
Но в данном случае это мало поможет - там несколько сотен страниц с кучей перекрестных ссылок и автоматической нумерации таблиц и рисунков - устанешь кнопку нажимать...;) Да и пропустить там можно "на автомате" то что нужно.
Скрипт гораздо удобнее - правда очень сильно выручил...

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


Время: 04:09.

Время: 04:09.
© OSzone.net 2001-