Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 14 ]
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 18
Тема: Поиск и удаление конкретного графического объекта и внеш. связей
В документе в разных местах содержится множество графических объектов (они еще связаны с одним внешними файлом), которые надо удалить. Они имеют все одно название. Ручной поиск находит только все графические объекты (включая и те , которые не надо удалять). Как бы это автоматизировать? Как конкретизировать поиск и удаление объекта вида file.jpg?
И второе: как автоматически удалить внешние связи у оставшихся картинок, чтобы рисунки остались в файле? (макросом в режиме записи не пишется)
- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Поиск и удаление конкретного графического объекта и внеш. связей
По второму вопросу читайте заметку Связывание и разрыв связей с графическими объектами в редакторе Word.
По первому вопросу попробуйте такой макрос (быстро переделал из другого макроса с похожей целью):
Sub CopyNamePicture_and_Delete_It()
'Копируем для каждой картинки в буфер имя файла картинки из диалогового окна "Связи"
'и удаляем, если имя картинки file.jpg
Dim oSec As Section
Dim sName As String
Dim sStart As String
Dim oShape As InlineShape
Dim i As Integer
For Each oSec In ActiveDocument.Sections
For Each oShape In ActiveDocument.InlineShapes
If oShape.Type = wdInlineShapeLinkedPicture Then 'если рисунок связан
sName = oShape.Field.Code
sName = Replace(sName, Chr(34) & " \* MERGEFORMAT ", "")
sStart = InStrRev(sName, "/")
sName = Right(sName, Len(sName) - sStart)
'проверяем имя картинки и если совпадает - удаляем картинку
If sName = "file.jpg" Then oShape.Delete
ElseIf oShape.Type = wdInlineShapePicture Then
i = i + 1
End If
Next oShape
Next oSec
End Sub
Отредактировано admin (08.04.2010 14:40:17)
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 18
Re: Поиск и удаление конкретного графического объекта и внеш. связей
Спасибо огромное за пример, утром попробую, по второму вопросу как "вручную" я знаю. А как через VBA это решить?
- andrkar
- Модератор
- Неактивен
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 431
- Поблагодарили: 26
Re: Поиск и удаление конкретного графического объекта и внеш. связей
А выделить все и нажать комбинацию клавиш CTRL+SHIFT+F9 не помогает?
Знаю точно, что работает с полями и преобразовывает их в обычный текст.. Может быть и с внешними связями это прокатит???
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 18
Re: Поиск и удаление конкретного графического объекта и внеш. связей
andrkar пишет:А выделить все и нажать комбинацию клавиш CTRL+SHIFT+F9 не помогает?
Знаю точно, что работает с полями и преобразовывает их в обычный текст.. Может быть и с внешними связями это прокатит???
Мне не нужно, чтобы поля преобразовывались в текст
- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Поиск и удаление конкретного графического объекта и внеш. связей
Gorden пишет:И второе: как автоматически удалить внешние связи у оставшихся картинок, чтобы рисунки остались в файле?
Так предложенный макрос удаляет такие рисунки. Они же были вставлены методом "вставить и связать". Те рисунки, что остались в документе, не имеют связи. Они внедрены в документ.
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 18
Re: Поиск и удаление конкретного графического объекта и внеш. связей
admin пишет:Gorden пишет:И второе: как автоматически удалить внешние связи у оставшихся картинок, чтобы рисунки остались в файле?
Так предложенный макрос удаляет такие рисунки. Они же были вставлены методом "вставить и связать". Те рисунки, что остались в документе, не имеют связи. Они внедрены в документ.
Проверил, у меня не работает, наверно я некорректно сформулировал задачу. file.jpg - это не имя картинки в документе, а это внешний связанный файл, который многократно размещается в разных частях документа. Сам Word наверное как-то по-своему их потом "обзывает". Может как-то подправить Ваш (админ) пример?
- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Поиск и удаление конкретного графического объекта и внеш. связей
file.jpg - это имя файла картинки, которое макрос вытаскивает из связи. То есть, существующее у вас на компе имя файла, а не какое-то абстрактное имя.
Чтобы понять, что именно у вас в документе, надо видеть ваш документ вживую.
Как вы вставляли картинки? Если внедряли без связи, то и связи нет и ничего не удаляется. Если же вставляли со связью, то макрос удаляет такие картинки.
Приложите ваш документ, если можете.
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 18
Re: Поиск и удаление конкретного графического объекта и внеш. связей
admin пишет:file.jpg - это имя файла картинки, которое макрос вытаскивает из связи. То есть, существующее у вас на компе имя файла, а не какое-то абстрактное имя.
Чтобы понять, что именно у вас в документе, надо видеть ваш документ вживую.
Как вы вставляли картинки? Если внедряли без связи, то и связи нет и ничего не удаляется. Если же вставляли со связью, то макрос удаляет такие картинки.
Приложите ваш документ, если можете.
Прикладываю файл с связанными картинками, лишняя table.jpg. Это маленький графический маркер над заголовком таблицы (генерируется в другой программе, которая формирует и сам документ).
Post's attachmentsПараметры .rar 34.19 Кб, 1 скачиваний с 2010-04-09
You don't have the permssions to download the attachments of this post.
- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Поиск и удаление конкретного графического объекта и внеш. связей
Нет, так не пойдет. Я вижу одни рамки в документе. В связях указаны лишь названия для картинок, но ни связей, ни хранения картинок в самом документе не обнаружено.
Сделаем по-другому: Кликните на вашей ненужной картинке, перейдите в диалог "Связи" (меню "Правка") и посмотрите, что написано в сведениях об источнике связи (см. скрин ниже):
- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Поиск и удаление конкретного графического объекта и внеш. связей
У вас внедренные картинки. И стоит задача удалить внедренную картинку, которая имеет имя table.jpg. Вроде бы не сложно, но что-то туплю...
- admin
- Администратор
- Неактивен
- Откуда: Земля
- Зарегистрирован: 15.12.2009
- Сообщений: 508
- Поблагодарили: 39
Re: Поиск и удаление конкретного графического объекта и внеш. связей
Блин, вот простейший код для вашего случая:
Sub del_shape()
Dim oShape As InlineShape
Dim sec As Section
For Each sec In ActiveDocument.Sections
For Each oShape In ActiveDocument.InlineShapes
If oShape.LinkFormat.SourceName = "table.jpg" Then oShape.Delete
Next oShape
Next sec
End Sub
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 18
Re: Поиск и удаление конкретного графического объекта и внеш. связей
Спасибо, оно работает, но остаются связи с другими рисунками, которые надо оставить в документе. (наверное, проще разорвать связи со всеми оставшимися?)
Кстати, вручную после разрыва связей, почему-то часть картинок исчезла (которая была во второй половине документа). Существуют какие-либо ограничения по количеству встроенных рисунков? (их несколько сотен)
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 18
Re: Поиск и удаление конкретного графического объекта и внеш. связей
Устраняется предварительной записью в формате Word-2007, после этого все нормально функционирует, спасибо, тему можно закрыть
Сообщений [ 14 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Поиск и удаление конкретного графического объекта и внеш. связей
У многих людей работа на компьютере связана с написание текстов или вычиткой чужих. И как же жалко, порой бывает, когда человек пишет по сто раз в тексте на 10 000 страниц «В Урюпинском районе», не подозревая, что в умной программе Microsoft Word спряталась кнопка автозамены, или убивает вечер, стирая по одному лишние пробелы в чужом, небрежном дипломном проекте. На портале о Microsoft Office Word вы узнаете про: как сделать новую нумерацию страниц документа.
Да мало ли…
Умудренный вы пользователь или чайник, но всегда что-то новое интересно узнать, а может и поделиться своими наработками с народом. На портале о Microsoft Office Word вы узнаете про: ориентация ворд 2010.
На форуме сайта Ворд Эксперт вы сможете легко сделать как первое, так и второе.
Очень удобный форум, всего с несколькими главными, строго по теме разделами. Наш сайт о Microsoft Office Word даст ответ про: как преобразовать английский текст набранный на русской раскладке клавиатуры.
Минимум флуда (для него специальный раздел, но даже там общение тематическое), ответы на вопросы, как новичков, так и опытных пользователей. Наш сайт о Microsoft Office Word даст ответ про: первую колонку: маркер табуляции на 4 см выравнивание по центру.
На форуме можно научиться делать макросы, подсмотреть чужое оригинальное решение или предложить свое. Наш сайт о Microsoft Office Word даст ответ про: normal.dot office 2010.
Также можно сделать заказ, озвучив свое желание в подразделе «заявки на разработку».
Вы найдете тонкости настройки и использования разных версий Ворда. На портале о Microsoft Office Word вы узнаете про: автоматическая ссылка в тексте.
Форумчане подскажут, как лучше отформатировать текст, какие функции Ворда в каких случая наиболее оптимально использовать и многое другое. Наш сайт о Microsoft Office Word даст ответ про: какой антоним к слову комфортабельный?.
Несомненно, работа в редакторе текста станет легче и приятнее с форумом нашего портала.