If you are using a macro to get the username, then why not use the macro to test if the file exists and write the appropriate field to the merge document? E.g. as follows, which wites to the cursor, though it wouldn't be much of a stretch to write it to a bookmark or specific range.
Code:
Sub WriteField()
Dim strName As String
strName = Environ("UserName")
If FileExists("Q:\Letters\Signatures\" & strName & ".docx") Then
ActiveDocument.Fields.Add Selection.Range, wdFieldIncludeText, """Q:\\Letters\\Signatures\\" & strName & ".docx""", False
Else
ActiveDocument.Fields.Add Selection.Range, wdFieldIncludeText, """Q:\\Letters\\Signatures\\default.docx""", False
End If
End Sub
Private Function FileExists(strFullName As String) As Boolean
'Graham Mayor - http://www.gmayor.com
'strFullName is the name with path of the file to check
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(strFullName) Then
FileExists = True
Else
FileExists = False
End If
lbl_Exit:
Set fso = Nothing
Exit Function
End Function