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.