2 Effective Methods to Prevent Shared Word Template Files from Being Changed

In this post, we are delighted to provide you with 2 quick and useful approaches to prevent shared Word template files from being changed.

Within a company or business organization, it’s common to upload shared files on a public folder, including some Word documents, so everyone can access it. Sometimes, these template files require no change. However, it happens when some people accidentally modify and save the template. Therefore, you might have to keep an eye for this situation and replace the changed template with the original one all the time.    Prevent Shared Word Template Files from Being Changed

With no doubt, this work requires a lot time and efforts. So, we offer you the macro way to do the task.

Method 1: Prevent a Specific Word Template File from Being Changed

This macro will find and check if a template file has been changed according to its last modified time. If the time of template does not match with that of its original copy, then it will be replaced by the latter.

  1. First, open Word and press “Alt+ F11” to open VBA editor.
  2. Next, in “Normal” project, click “Insert” tab on the menu bar.
  3. Then choose “Module” on the drop-down menu.Click "Normal"->Click "Insert"->Click "Module"
  4. Open the editing area on the module by double click.
  5. And paste following codes there:
Sub CheckAndReplaceTheModifiedFile()
  Dim strSharedFile As String
  Dim strSharedFilePath As String
  Dim strSharedFileName As String
  Dim strOriginalFile As String

  ' Change the path as the actual path of your original template file.
  strOriginalFile = "C:\test\Doc1.docx"
  ' Change the path as the actual path of the shared file which is going to be checked.
  strSharedFile = "C:\Users\shared folder\Doc1.docx"
  strSharedFilePath = Left(strSharedFile, InStrRev(strSharedFile, "\"))
  strSharedFileName = Right(strSharedFile, Len(strSharedFile) - InStrRev(strSharedFile, "\"))
 
  If FileDateTime(strSharedFile) <> FileDateTime(strOriginalFile) Then
    nReturnValue = MsgBox("The file: " & strSharedFileName & " in share folder has been modified, do you want to replace it with the original file?", 4)
    If nReturnValue = 6 Then
      Kill strSharedFile
      FileCopy strOriginalFile, strSharedFilePath & strSharedFileName
      MsgBox ("The file: " & strSharedFileName & " has been replaced with original file")
    End If
  End If 
End Sub
  1. Now you need to make modifications to this macro.
  • First replace the file path in following code line with the actual address of your unchanged original file:
strOriginalFile = "C:\Users\Public\Documents\Sample\Test 1\DWORDR.docx"
  • Second, replace the path in following line with an actual one of your template file in public folder:
strSharedFile = "C:\Users\Public\Documents\Sample\Share Folder\DWORDR.docx"
  1. After this, click “Run” or hit “F5”.Paste Codes->Click "Run"
  2. Then there is the confirmation box, asking if you want to replace the changed file. Click “Yes” or “No” accordingly.Confirmation Box
  3. And when the replacement is done, there is the result box:Result Box

Method 2: Prevent Multiple Templates from Being Changed

  1. First of all, insert a 2-column table with multiple rows in a new document. In the first column, enter the paths of templates in public folder. And in the second column, enter addresses of unchanged files.Create a Table to Accommodate File Paths
  2. Then follow above steps to install and run a macro.
  3. Remember to replace macro with this one:
Sub CheckAndReplaceMultipleModifiedFiles()
  Dim objTable As Table
  Dim objSharedFile As Cell
  Dim objSharedFileRange As Range
  Dim objOriginalFileRange As Range
  Dim nRowNumber As Integer
  Dim strSharedFile As String
  Dim strOriginalFile As String
 
  Set objTable = ActiveDocument.Tables(1)
  nRowNumber = 1
 
  For Each objSharedFile In objTable.Columns(1).Cells
    Set objSharedFileRange = objSharedFile.Range
    objSharedFileRange.MoveEnd Unit:=wdCharacter, Count:=-1
    Set objOriginalFileRange = objTable.Cell(nRowNumber, 2).Range
    objOriginalFileRange.MoveEnd Unit:=wdCharacter, Count:=-1
 
    If objSharedFileRange.Text <> "" Then
      strSharedFile = objSharedFileRange.Text
      strOriginalFile = objOriginalFileRange.Text
      Call CheckAndReplaceTheModifiedFileInTableList(strSharedFile, strOriginalFile)
    End If
    nRowNumber = nRowNumber + 1
  Next
End Sub

Sub CheckAndReplaceTheModifiedFileInTableList(strSharedFile, strOriginalFile)
  Dim strSharedFilePath As String
  Dim strSharedFileName As String
 
  strSharedFilePath = Left(strSharedFile, InStrRev(strSharedFile, "\"))
  strSharedFileName = Right(strSharedFile, Len(strSharedFile) - InStrRev(strSharedFile, "\"))
 
  If FileDateTime(strSharedFile) <> FileDateTime(strOriginalFile) Then
    Kill strSharedFile
    FileCopy strOriginalFile, strSharedFilePath & strSharedFileName
    MsgBox ("The file: " & strSharedFileName & " has been replaced with original file")
  End If
End Sub
  1. If there are files being replaced, you will get message box as shown in method 1.

Check Your Backups Often

Backups can be a great help in times of data disaster. Certainly, we mean valid backups. There are times you resort to backups but only to find it’s damaged somehow. Therefore, you have to take time to check if your backups are sound and intact. Otherwise, you will need a tool to repair docx when data loss occurs.

Author Introduction:

Vera Chen is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including damaged xls and pdf repair software products. For more information visit www.datanumen.com

Comments are closed.