Trabajar con objetos Document
En Visual Basic, los métodos para modificar archivos son métodos del objeto Document o de la colección Documents . En este tema se incluyen ejemplos de Visual Basic relacionados con las tareas identificadas en las secciones siguientes.
Crear un nuevo documento
La colección Documents incluye todos los documentos abiertos. Para crear un nuevo documento, utilice el método Add para agregar un objeto Document a la colección Documents. La siguiente instrucción crea un documento.
Documents.Add
Una alternativa mejor para crear un documento es asignar el valor devuelto a una variable de objeto. El método Add devuelve un objeto Document que hace referencia al nuevo documento. En el siguiente ejemplo, se asigna el objeto Document devuelto por el método Add a una variable de objeto. Después, se establecen varias propiedades y métodos del objeto Document. El nuevo documento se puede controlar fácilmente con una variable 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 un documento
Para abrir un documento existente, use el método Open con la colección Documents . La siguiente instrucción abre un documento denominado Sample.doc, que se encuentra en la carpeta MyFolder.
Sub OpenDocument()
Documents.Open FileName:="C:\MyFolder\Sample.doc"
End Sub
Guardar un documento existente
Para guardar un único documento, use el método Save con el objeto Document . Las siguientes instrucciones guardan el documento llamado Sales.doc.
Sub SaveDocument()
Documents("Sales.doc").Save
End Sub
Puede guardar todos los documentos abiertos aplicando el método Save a la colección Documents. Con la siguiente instrucción se guardan todos los documentos abiertos.
Sub SaveAllOpenDocuments()
Documents.Save
End Sub
Guardar un nuevo documento
Para guardar un único documento, use el método SaveAs2 con un objeto Document . Las siguientes instrucciones guardan el documento activo como "Temp.doc" en la carpeta actual.
Sub SaveNewDocument()
ActiveDocument.SaveAs FileName:="Temp.doc"
End Sub
El argumento FileName solo puede incluir el nombre de archivo o la ruta de acceso completa (por ejemplo, "C:\Documents\Temporary File.doc").
Cerrar documentos
Para cerrar un único documento, use el método Close con un objeto Document . La siguiente instrucción se cierra y guarda el documento llamado Sales.doc.
Sub CloseDocument()
Documents("Sales.doc").Close SaveChanges:=wdSaveChanges
End Sub
Puede cerrar todos los documentos abiertos aplicando el método Close de la colección Documents . Con la siguiente instrucción se cierran todos los documentos sin guardar los cambios.
Sub CloseAllDocuments()
Documents.Close SaveChanges:=wdDoNotSaveChanges
End Sub
En el siguiente ejemplo, se pide al usuario que guarde el documento antes de cerrarlo.
Sub PromptToSaveAndClose()
Dim doc As Document
For Each doc In Documents
doc.Close SaveChanges:=wdPromptToSaveChanges
Next
End Sub
Activar un documento
Para cambiar el documento activo, use el método Activate con un objeto Document . La siguiente instrucción se activa y abre el documento llamado Sales.doc.
Sub ActivateDocument()
Documents("Sales.doc").Activate
End Sub
Determinar si un documento está abierto
Para determinar si un documento está abierto, puede enumerar la colección Documents utilizando la instrucción For Each...Next. En el ejemplo siguiente, se activa el documento denominado Sample.doc, si está abierto, o se abre Sample.doc si no está abierto actualmente.
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
Hacer referencia al documento activo
En lugar de hacer referencia a un documento por nombre o por número de índice (por ejemplo, Documents("Sales.doc")
), la propiedad ActiveDocument devuelve un objeto Document que hace referencia al documento activo (el documento con el foco). El ejemplo siguiente muestra el nombre del documento activo y, si no hay ningún documento abierto, muestra un mensaje.
Sub ActiveDocumentName()
If Documents.Count >= 1 Then
MsgBox ActiveDocument.Name
Else
MsgBox "No documents are open"
End If
End Sub
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de