Sostituzione di un nome file immagine con l’immagine reale (Microsoft Word)
Steve ha un documento con testo che indica dove deve essere posizionata un’immagine. Questo testo è costituito dal nome dell’immagine (come “image01.jpg”)
tra parentesi. Sta cercando un modo per sostituire automaticamente il nome di ciascuna immagine con l’immagine reale.
Questa operazione non può essere eseguita con le normali funzionalità Trova e sostituisci di Word, ma può essere eseguita utilizzando una macro. L’idea sarebbe quella di cercare nel documento il testo del marker (i nomi delle immagini) e, se ne viene trovato uno, prendere il nome dell’immagine e sostituire il testo del marker con l’immagine reale. Ecco una macro che implementa questi passaggi:
Sub ReplaceImages() Dim sMarkerText As String Dim sFigName As String Dim sFigPath As String ' Change to the path to the pictures, with a trailing slash. sFigPath = "C:\Users\Steve\Pictures\" ' Change to marker text. Can include wildcards. sMarkerText = "(image??.jpg)" ' Search through document for marker text Selection.Find.ClearFormatting With Selection.Find .Text = sMarkerText .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute While Selection.Find.Found ' Found a match, so grab name ' Need to adjust for parens in marker text sFigName = Mid(Selection, 2, Len(Selection) - 2) ' Delete the marker text Selection.Delete ' Insert the picture Selection.InlineShapes.AddPicture FileName:= _ sFigPath & sFigName, LinkToFile:=False, _ SaveWithDocument:=True Selection.Find.Execute Wend End Sub
Ci sono due cose che devi modificare nel codice della macro: i valori memorizzati nelle variabili sFigPath e sMarkerText. Il contenuto di sMarkerText, come mostrato, corrisponderà a qualsiasi parentesi in cui la parola “immagine”
è seguito da due caratteri (come 01, 02, 97 o XY) e il “.jpg”
estensione.
Il metodo Find dell’oggetto Selection implementa un’azione Trova effettiva per la prima occorrenza del testo del marker. Se viene trovato, entra in gioco il codice nel ciclo While … Wend. Questo acquisisce il nome del file e lo assegna alla variabile sFigName. Quindi il testo del marker trovato viene eliminato e al suo posto viene inserita un’immagine in linea. Infine, la riga Selection.Find.Execute trova l’occorrenza successiva del testo del marker, se presente.
La macro inserisce le immagini in linea e non esegue alcuna elaborazione aggiuntiva su di esse.
_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 (10135) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365.