Di seguito riporto una macro VBA per Word che assegna una specifica password (di protezione in modifica) a tutti i file DOC contenuti in una determinata directory.
Una volta applicata la protezione ai file, sarà inibita qualsiasi modifica, ad esclusione di eventuali moduli presenti nei documenti .
Ovviamente i file a cui deve essere applicata la password, prima dell’esecuzione della macro, non devono essere già protetti.
Sub inserisci_password_file_cartella() Dim i As Integer Dim miapassword As String Set cartella = Application.FileSearch miapassword = "MiaPassw12345678" 'specificare la passw da inserire With cartella .LookIn = "c:\luca" 'specificare il percorso dove sono contenuti i file .FileName = "*.doc" 'la macro considera solo i file DOC If .Execute(SortBy:=msoSortByFileName, _ SortOrder:=msoSortOrderAscending) > 0 Then 'MsgBox .FoundFiles.Count For i = 1 To .FoundFiles.Count 'MsgBox .FoundFiles(i) file_trovato = .FoundFiles(i) 'apertura file Documents.Open FileName:=file_trovato, ConfirmConversions:=False, ReadOnly:= _ False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _ "", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _ Format:=wdOpenFormatAuto If ActiveDocument.ProtectionType = wdNoProtection Then 'inserisce protezione ActiveDocument.Protect Password:=miapassword, NoReset:=False, _ Type:= wdAllowOnlyFormFields 'Chiude e salva il file ActiveDocument.Close SaveChanges:=wdSaveChanges End If Next i Else MsgBox "Nessun file trovato nella cartella specificata!" Exit Sub End If End With End Sub
Purtroppo le righe del codice vengono interrotte nell’articolo, ma facendo un copia-incolla è possibile visualizzarle per intero.