Alex o seu problema está aqui Private Sub Substitui_Var(Header As String, Data As String) Set objWord = New Word.Application objWord.Documents.Open ("c:\vba\contrato.doc") Toda vez que ele chamar Substitui_Var, ele abrirá uma cópia do arquivo Contrato.doc o que eu acho que te ajudaria, é declarar objWord como pública e retirar as duas primeiras linhas da sub Substitui_VAR. o que aconteceria, no momento que você clicar no botão, ele abriria o arquivo contrato uma vez vinculando as infos com a variavel "objWord". Quando você chamasse a sub Substiruir_Var, ele usaria as propriedades da variavel para substituir o texto Não sei se você me entendeu, mas qualquer coisa posta ai...