У Росарио огромное количество документов (их около 44 000), каждый из которых содержит графику в заголовке. Она ищет способ удалить всю эту графику без необходимости открывать и изменять каждый документ вручную.

К счастью, с этим можно справиться, создав макрос. Все, что вам нужно сделать, это поместить все документы в папку, а затем использовать макрос для поиска в папке, открытия каждого документа, удаления рисунка и сохранения каждого документа. Это можно сделать с помощью следующего макроса:

Sub StripGraphics()

Dim oShape As Shape     Dim oIShape As InlineShape     Dim I As Integer     Dim J As Integer

With Application.FileSearch         .LookIn = "C:\MyStuff\"     ' where to search         .SearchSubFolders = True    ' search the subfolders         .FileName = "*.docx"        ' file pattern to match

' if more than one match, execute the following code         If .Execute() > 0 Then             MsgBox "Found " & .FoundFiles.Count & " file(s)."



' for each file you find, run this loop             For I = 1 To .FoundFiles.Count                 ' open the file based on its index position                 Documents.Open FileName:=.FoundFiles(I)



' document is now active, check all sections                 For J = 1 To ActiveDocument.Sections.Count                     With ActiveDocument.Sections(J).Headers(wdHeaderFooterPrimary)

' remove floating graphics from header                         If .Shapes.Count > 0 Then                             For Each oShape In .Shapes                                 oShape.Delete                             Next oShape                         End If                         ' remove inline graphics from header                         If .Range.InlineShapes.Count > 0 Then                             For Each oIShape In .Range.InlineShapes                                 oIShape.Delete                             Next oIShape                         End If                     End With                     With ActiveDocument.Sections(J).Headers(wdHeaderFooterFirstPage)

' remove floating graphics from header                         If .Shapes.Count > 0 Then                             For Each oShape In .Shapes                                 oShape.Delete                             Next oShape                         End If                         ' remove inline graphics from header                         If .Range.InlineShapes.Count > 0 Then                             For Each oIShape In .Range.InlineShapes                                 oIShape.Delete                             Next oIShape                         End If                     End With                 Next J

' save and close the current document                 ActiveDocument.Close wdSaveChanges             Next I         Else             MsgBox "No files found."

End If     End With End Sub

Этот макрос предполагает, что вы хотите удалить всю графику (как плавающую, так и встроенную) в заголовке. Они удаляются, и каждый файл сохраняется. Макрос не влияет на другие изображения в документе.

Обратите внимание, что этот конкретный макрос проверяет файлы, которые используют расширение DOCX. Если у вас есть документы, использующие разные расширения (например, DOCM или более старый DOC), вам придется запускать макрос несколько раз. Между каждым запуском меняйте строку, задающую шаблон для расширения файла. (В конце строки есть комментарий, который гласит: «Соответствующий шаблон файла».)

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (9744) относится к Microsoft Word 2007 и 2010. Вы можете найти версию этого совета для старого интерфейса меню Word здесь:

link: / word-Removing_Pictures_from_Multiple_Files [Удаление изображений из нескольких файлов].