Rosario ha un numero enorme di documenti (circa 44.000 di essi), ognuno dei quali contiene un’immagine nell’intestazione. Sta cercando un modo per rimuovere tutta quella grafica senza la necessità di aprire e modificare manualmente ogni documento.

Fortunatamente questo può essere gestito creando una macro. Tutto quello che devi fare è mettere tutti i documenti in una cartella e quindi utilizzare la macro per cercare nella cartella, aprire ogni documento, rimuovere l’immagine e salvare ogni documento. Questo può essere fatto con una macro come la seguente:

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

Questa macro presuppone che si desideri rimuovere tutta la grafica (sia mobile che inline) nell’intestazione. Questi vengono rimossi e ogni file viene salvato di nuovo. La macro non influisce su nessun altro elemento grafico nel documento.

Si noti che questa particolare macro verifica la presenza di file che utilizzano l’estensione DOCX. Se hai documenti che utilizzano estensioni diverse (come DOCM o il vecchio DOC), dovrai eseguire la macro più volte. Tra ogni esecuzione, modificare la linea che imposta il modello per l’estensione del file. (La riga ha il commento alla fine che dice, “file pattern to match”.)

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.

WordTips è la tua fonte di formazione economica su Microsoft Word.

(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (9744) si applica a Microsoft Word 2007 e 2010. Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Word qui: