
Tips.Net > WordTips Home > Graphics > Managing Graphics > Removing Pictures from Multiple Files
Summary: Got a bunch of files you need to remove a graphic from? What if that graphic is in the header of each of those files? With the macro introduced in this tip, you can load thousands of documents and remove any graphics from each one’s headers. (This tip works with Microsoft Word 97, Word 2000, Word 2002, and Word 2003.)
Rosario has a huge number of documents (about 44,000 of them), each of which contains a graphic in the header. She is looking for a way to remove all those graphics without the necessity of opening and modifying each document manually.
Fortunately this can be handled by creating a macro. All you need to do is put all the documents in a folder and then use the macro to search through the folder, open each document, remove the graphic, and save each document. This can be done with a macro like the following:
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 = "*.doc" ' 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
This macro makes the assumption that you want to remove all the graphics (both floating and inline) in the header. These are removed, and each file is resaved. The macro doesn't affect any other graphics in the document.
Tip #311 applies to Microsoft Word versions: 97 2000 2002 2003
Take Control! Experienced users know that styles can make the difference between a plain document and a masterful one. This is the real power behind Word, and the key to that power can be found in WordTips: Styles and Templates.
The real power behind Word's best documents lies in understanding styles and templates. Learn the key to more powerful document creation. (more information...)
Ask a Word Question
Make a Comment
Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Pet Tips
Word2007 Tips
WordTips