There are no loops in the code, so the idea that it's looping is mistaken. However, you also mention updating links. Link update performance can be seriously affected by whether the updates are being done over a network. And, of course, if the path to the data is different on the user's PC, Word quite possibly won't be able to find the source find to do the updates from.
FWIW, the macro could be made much more efficient:
Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
With Activedocument
.Fields.Update
.PrintPreview
.ClosePrintPreview
End With
Application.ScreenUpdating = True
End Sub
There is no need to select anything.