Steve crea documenti che richiedono che il nome del file del documento sia indicato nell’intestazione e nelle didascalie legali sulla prima e sulla seconda pagina del documento. Ha creato una macro che, dopo aver digitato il nome del file nell’intestazione, lo copia e lo incolla nei campi del modulo di testo nelle didascalie nelle posizioni appropriate. Il passaggio successivo dell’assemblaggio del documento consiste nel salvare il documento utilizzando il comando “Salva con nome”. Il documento deve essere salvato utilizzando lo stesso nome di file inserito nell’intestazione e nelle didascalie.

Quando si esegue questa operazione manualmente, Steve visualizza la finestra di dialogo Salva con nome, incolla il nome del file in essa, quindi fa clic su Salva. Ha provato a creare il codice macro per aggiungere questo passaggio “Salva con nome”, ma non riesce a capire come farlo. Quando Word registra i passaggi manuali, Steve ottiene qualcosa di simile al seguente:

ActiveDocument.SaveAs FileName:="04562.sw.docx

Ciò mostra che Word sta registrando il nome di file specifico utilizzato durante i passaggi manuali, ma Steve desidera utilizzare un nome di file diverso, in base a ciò che è nell’intestazione del documento. Quelle informazioni (il nome del file) si trovano negli Appunti quando la macro viene eseguita, quindi è anche possibile prendere le informazioni dagli Appunti, ma Steve è anche perplesso su come farlo.

Poiché Steve ha già una macro per copiare il nome del file, ed è soddisfatto di quella macro, dovrebbero essere necessarie solo un paio di modifiche al suo codice per salvare il file con il nome corretto. Prova ad aggiungere il seguente codice nelle posizioni appropriate nella tua macro esistente:

Dim strTemp As String Dim MyData As DataObject Set MyData = New DataObject

MyData.GetFromClipboard strTemp = MyData.GetText(1)

ActiveDocument.SaveAs FileName:=Trim(strTemp) & ".docx"

Finché hai una stringa di testo negli Appunti che vuoi usare per il tuo nome file, questo codice dovrebbe funzionare. Aggiunge anche l’estensione .Doc alla fine della stringa negli Appunti. Questo codice richiede l’impostazione di un riferimento per Microsoft Forms nell’editor VBA.

(Scegli Riferimenti dal menu Strumenti nell’Editor.)

Ovviamente va sottolineato che potresti voler ripensare il tuo approccio a questa macro. In effetti, potresti essere in grado di sbarazzarti della maggior parte del tuo codice se adotti un approccio completamente diverso. Ad esempio, potresti prima fare in modo che le persone salvano il documento e quindi fanno riferimento al nome del file nel documento stesso tramite l’uso dei campi. (Il campo FILENAME potrebbe essere utilizzato a questo scopo.)

Invece di utilizzare una macro per copiare il nome del file nella prima e nella seconda pagina del documento, potresti anche utilizzare uno stile definito (come DocTitle o DocName) per fare riferimento al nome del tuo file, quindi utilizzare il campo STYLEREF altrove documento per fare riferimento a quel nome. In questo modo deve essere inserito solo una volta e non è necessaria alcuna macro. Puoi trovare diversi modi per ripetere i dati in diverse aree del documento in questa pagina sul sito di un MVP di Word:

http://gregmaxey.mvps.org/Repeating_Data.htm

È inoltre possibile creare un form utente per raccogliere i dati dall’utente (per ottenere il nome file desiderato) e quindi salvare il documento con quel nome.

La macro potrebbe quindi assegnare il nome del file al campo TITOLO e in qualsiasi punto del documento che fa riferimento al campo TITOLO mostrerà automaticamente il nome del file immesso dall’utente.

_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 (10809) si applica a Microsoft Word 2007, 2010, 2013 e 2016. Puoi trovare una versione di questo suggerimento per l’interfaccia del menu precedente di Word qui: