Estrazione di nomi di file INCLUDEPICTURE (Microsoft Word)
Quando si lavora con documenti lunghi che contengono immagini, non è insolito utilizzare il campo INCLUDEPICTURE per inserire effettivamente le immagini nel documento. Se nel documento è presente un numero elevato di questi campi, è possibile creare un “elenco di immagini” che includa i nomi dei file grafici utilizzati nel documento.
Utilizzando una macro relativamente semplice, è possibile scorrere ogni istanza del campo INCLUDEPICTURE nel documento ed estrarre solo i nomi dei file a cui si fa riferimento. Questi possono quindi essere aggiunti a un nuovo documento, in modo che al termine della macro, il nuovo documento contenga solo un elenco dei file a cui si fa riferimento nei campi INCLUDEPICTURE. Ecco una macro che farà proprio questo:
Sub GetIncludePictures() Dim oField As Field Dim oCurrentDoc As Document Dim oNewDoc As Document Dim sFileName As String Set oCurrentDoc = ActiveDocument Set oNewDoc = Application.Documents.Add For Each oField In oCurrentDoc.Fields If oField.Type = wdFieldIncludePicture Then sFileName = Replace(oField.Code, "INCLUDEPICTURE", "") sFileName = Replace(sFileName, "MERGEFORMAT", "") sFileName = Replace(sFileName, "\*", "") sFileName = Replace(sFileName, "\d", "") sFileName = Replace(sFileName, Chr(34), "") sFileName = Replace(sFileName, "\\", "\") sFileName = Trim(sFileName) oNewDoc.Range.InsertAfter sFileName & vbCrLf End If Next oField oNewDoc.Activate Set oField = Nothing Set oCurrentDoc = Nothing Set oNewDoc = Nothing End Sub
Notare l’utilizzo della funzione Sostituisci più volte nella macro. Questa funzione sostituisce le occorrenze di una stringa all’interno di un’altra stringa con altro testo. Può sembrare confuso, ma è molto utile. Ad esempio, immagina di avere una stringa (sMyString) che contiene i caratteri “Questa è la mia stringa” e di utilizzare quanto segue:
SMyString = Replace(sMyString, "s", "X")
In questo modo ogni “s” minuscola in sMyString viene sostituita con una “X” maiuscola. Il risultato è che sMyString conterrà ora “ThiX iX my Xtring”.
Nel caso della macro GetIncludePictures, le diverse righe che contengono le funzioni Sostituisci funzionano per rimuovere tutti i caratteri estranei dal codice di campo, ad eccezione del nome file effettivo dell’immagine. Se vuoi rimuovere anche qualcos’altro, puoi aggiungere più linee per rimuovere quegli elementi. (Ad esempio, se si desidera rimuovere un nome di percorso standard in cui sono archiviate le immagini.)
Quando la macro è stata eseguita, l’unica cosa nel nuovo documento dovrebbe essere il nome delle immagini, come nei seguenti esempi:
C:\mypics\picture1.tif ..\graphics\chap01\fig03.gif
Se desideri solo i nomi dei file e non i nomi dei percorsi completi, puoi modificare leggermente la macro GetIncludePictures per includere il codice che ha analizzato il percorso. Puoi farlo aggiungendo quanto segue alla macro, subito dopo la riga sFileName = Trim (sFileName):
While Instr(sFileName, "\") > 0 sFileName = Mid(sFileName, Instr(sFileName, "\") + 1) Wend
_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 (1296) si applica a Microsoft Word 97, 2000, 2002 e 2003. È possibile trovare una versione di questo suggerimento per l’interfaccia della barra multifunzione di Word (Word 2007 e più tardi) qui: