Trabalhar com objetos Document

No Visual Basic, os métodos para modificação de arquivos são métodos do objeto Document ou a coleção Documents. Este tópico inclui Visual Basic exemplos relacionados às tarefas identificadas nas seções a seguir.

Criar um novo documento

A coleção Documents inclui todos os documentos abertos. Para criar um novo documento, use o método Add para adicionar um objeto Document à coleção Documents. A instrução a seguir cria um documento.

Documents.Add

Uma forma melhor de criar um documento é atribuir o valor de retorno a uma variável de objeto. O método Add retorna um objeto Document que se refere ao novo documento. No exemplo a seguir, o objeto Document retornado pelo método Add é atribuído a uma variável de objeto. Depois diversas propriedades e métodos do objeto Document são definidos. Você pode controlar facilmente o novo documento usando uma variável de objeto.

Sub NewSampleDoc() 
    Dim docNew As Document 
    Set docNew = Documents.Add 
    With docNew 
        .Content.Font.Name = "Tahoma" 
        .SaveAs FileName:="Sample.doc" 
    End With 
End Sub

Abrir um documento

Para abrir um documento existente, use o método Open com a coleção Documents. A instrução a seguir abre um documento chamado Sample localizada na pasta Minhapasta.

Sub OpenDocument() 
    Documents.Open FileName:="C:\MyFolder\Sample.doc" 
End Sub

Salvar um documento já existente

Para salvar um único documento, use o método Save com o objeto Document. A instrução a seguir salva o documento Sales.doc.

Sub SaveDocument() 
    Documents("Sales.doc").Save 
End Sub

Você pode salvar todos os documentos abertos aplicando o método Save à coleção Documents. A instrução a seguir salva todos os documentos abertos.

Sub SaveAllOpenDocuments() 
    Documents.Save 
End Sub

Salvar um novo documento

Para salvar um único documento, use o método SaveAs2 com um objeto Document. A instrução a seguir salva o documento ativo como "Temp" na pasta atual.

Sub SaveNewDocument() 
    ActiveDocument.SaveAs FileName:="Temp.doc"
End Sub

O argumento FileName pode incluir apenas o nome do arquivo ou o caminho completo (por exemplo, "C:\Documents\Temporary File.doc").

Fechar documentos

Para fechar um único documento, use o método Close com um objeto Document. A instrução a seguir fecha e salva o documento Sales.doc.

Sub CloseDocument()
    Documents("Sales.doc").Close SaveChanges:=wdSaveChanges 
End Sub

Você pode fechar todos os documentos abertos aplicando o método Close da coleção Documents. A instrução a seguir fecha todos os documentos sem salvar as alterações.

Sub CloseAllDocuments() 
    Documents.Close SaveChanges:=wdDoNotSaveChanges
End Sub

O exemplo a seguir solicita que o usuário salve cada documento antes que o documento seja fechado.

Sub PromptToSaveAndClose()
    Dim doc As Document
    For Each doc In Documents 
        doc.Close SaveChanges:=wdPromptToSaveChanges
    Next
End Sub

Ativar um documento

Para alterar o documento ativo, use o método Activate com um objeto Document. A instrução a seguir ativa o documento aberto Sales.doc.

Sub ActivateDocument() 
    Documents("Sales.doc").Activate 
End Sub

Determinar se um documento está aberto

Para determinar se um documento está aberto, você pode enumerar a coleção Documents usando uma instrução For Each...Next. O exemplo a seguir ativará o documento denominado "Sample.doc" se o documento estiver aberto, ou o abrirá se ele estiver fechado.

Sub ActivateOrOpenDocument() 
    Dim doc As Document 
    Dim docFound As Boolean 
 
    For Each doc In Documents 
        If InStr(1, doc.Name, "sample.doc", 1) Then 
            doc.Activate 
            docFound = True 
            Exit For 
        Else 
            docFound = False 
        End If 
    Next doc 
 
    If docFound = False Then Documents.Open FileName:="Sample.doc" 
End Sub

Referir-se ao documento ativo

Em vez de referir-se a um documento pelo nome ou número de índice — por exemplo, Documents("Sales.doc") — a propriedade ActiveDocument retorna um objeto Document que se refere ao documento ativo (o documento com o foco). O exemplo a seguir exibe o nome do documento ativo, ou se não houver nenhum documento aberto, exibe uma mensagem.

Sub ActiveDocumentName() 
    If Documents.Count >= 1 Then 
        MsgBox ActiveDocument.Name 
    Else 
        MsgBox "No documents are open" 
    End If 
End Sub

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.