Glenn stava cercando un modo per “mettere un segno” su un documento per indicare che era stato archiviato. Inoltre, c’erano molti di questi documenti da contrassegnare, quindi un modo per caricarli, aggiungere il segno e salvarli di nuovo era desiderabile.

Ci sono molti modi diversi in cui un tale compito può essere raggiunto. Le differenze sono determinate dal modo esatto in cui il “segno” viene posizionato in un documento. Ovviamente, la parola “Archivio” (o una terminologia simile) potrebbe essere aggiunta a un documento, ma ciò influirebbe sull’aspetto effettivo del documento stesso, il che è spesso indesiderabile.

C’è una soluzione che non coinvolge nessun segno visibile nel documento: usa le proprietà del documento. È possibile impostare una proprietà del documento personalizzata che indichi se il documento è stato archiviato o meno. Successivamente è possibile cercare la proprietà per determinare quali file soddisfano i criteri.

La seguente macro caricherà tutti i documenti in una directory (e possibilmente qualsiasi sottodirectory) e creerà o imposterà una proprietà di documento personalizzata che indica che il documento è stato archiviato. In questo caso, la proprietà personalizzata è denominata Archive ed è impostata su True (Sì)

condizione.

Public Sub SetArchive()

Dim bExists As Boolean

With Application.FileSearch         .LookIn = "C:\"             ' where to search         .SearchSubFolders = True    ' search the subfolders         .FileName = "*.doc"         ' file pattern to match

' if more than one match, execute the following code         If .Execute() > 0 Then             For i = 1 To .FoundFiles.Count                 ' Open the file                 Documents.Open FileName:=.FoundFiles(i)



' Begin document changes

' See if the doc variable exists                 bExists = False                 For Each varItem In ActiveDocument.CustomDocumentProperties                     If varItem.Name = "Archive" Then                         bExists = True                         Exit For                     End If                 Next varItem

If Not bExists Then                     ' Add and set document property                     ActiveDocument.CustomDocumentProperties.Add _                       Name:="Archive", LinkToContent:=False, _                       Type:=msoPropertyTypeBoolean, Value:=True                 Else                     'Already exists, so just set it                     ActiveDocument.CustomDocumentProperties("Archive") = True                 End If

' End document changes

' Force document to be saved                 ActiveDocument.Saved = False                 ' Save and close the current document                 ActiveDocument.Close wdSaveChanges             Next i         Else             ' Could not find any DOC files             MsgBox "No files found."

End If     End With End Sub

Per utilizzare la macro, è sufficiente modificare la specifica della directory nella quinta riga della macro (inizia con .LookIn). Una volta eseguito, la proprietà Archive viene creata e impostata in ciascuno dei documenti. È possibile visualizzare i risultati caricando uno dei file, scegliendo File | Proprietà | Personalizzato. La proprietà Archive dovrebbe essere visibile nella finestra di dialogo.

C’è una cosa interessante in questa macro. Si noti che è necessario “forzare” il salvataggio del documento impostando la proprietà Saved per il documento su False. Se non lo fai, la tua proprietà personalizzata non viene salvata. Perché? Apparentemente Word non riconosce una modifica a una proprietà personalizzata, inclusa l’aggiunta di una, come motivo per salvare un documento. Pertanto, a meno che non si imponga la proprietà Saved su False, Word non riconosce che si sono apportate modifiche nel documento.

Se si preferisce non utilizzare l’approccio delle proprietà personalizzate per contrassegnare l’archivio, è possibile apportare alcune modifiche a questa macro per ottenere i risultati desiderati. Tutto quello che devi fare è sostituire il codice tra i commenti “Inizia modifiche al documento” e “Termina modifiche al documento” con ciò che vuoi fare al documento. Ad esempio, se desideri inserire una filigrana nel documento, sostituisci semplicemente il codice annotato con il codice che crea e posiziona la filigrana.

_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 (1647) 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: