Excel y Word

Todas las aplicaciones Office de Microsoft utillizan el mismo lenguaje VBA; la diferencia entre ellos es su modelo de objeto. esto facilita que cualquier el acceso entre ellas siempre y cuando estén instaladas.

Para el caso que nos ocupa, cómo acceder a Word mediante excel, precisamos acceder a la biblioteca de objetos de Word:

biblioteca de objetos

Un archivo con una extensión de nombre de archivo .OLB que proporciona a los controladores de Automatización OLE (como Visual Basic) información sobre los objetos de Automatización OLE disponibles. Puede utilizar el Examinador de objetos para examinar el contenido de una biblioteca de objetos y obtener información sobre los objetos que proporciona.

Para acceder a dicha biblioteca podemos hacerlo de dos formas:

  • Mediante vinculación previa: la referencia al objeto se realiza cuando se compila el programa.
  • Mediante vinculación posterior: en tiempo de ejecución.

Vinculación previa

El código se ejecuta más rápido, ya que se realiza una referencia al objeto antes de que se escriba el código. Para ello debemos añadir la biblioteca a la aplicación caso de que no esté disponible. Para ello:

  1. Seleccionar Herramientas>Referencias.
  2. Activar Micrsosoft Word 11.o Object Library.
  3. Clic en Aceptar.

Si no se encuentra la biblioteca es que Word no está instalado. Si encuentra otra versión es que hay otra versión diferente de Word instalada.

Veamos un ejemplo de cómo abrir un documento Word desde Excel denominado testWord.doc y que lo tenemos en C:\ existente :

Sub prueba_dos_word()
‘Cramos una variable para la aplicación y otro para el documento
Dim wdApp As Word.Application
Dim wdDoc As Document

‘invocamos la aplicación y abrimos el documento
Set wdApp = New Word.Application
Set wdDoc = wdApp.Documents.Open(ThisWorkbook.Path & “\testWord.doc”)
wdApp.Visible = True

‘vaciamos las variables
Set wdApp = Nothing
Set wdDoc = Nothing

End Sub

Si la versión de Word a la que se hacer referencia no existe, aparecerá un error de aplicación.

Vinculación posterior

Con este tipo de vinvulación creamos un objeto que hace referencia a la aplicación Word  antes de vincular con la biblioteca Word.

El siguiente ejemplo abre y hace visible el documento anterior:

Sub prueba_word()
‘debemos declarar una variable de objeto
Dim varDoc As Object

‘creamos el objeto
Set varDoc = CreateObject(“Word.application”)

varDoc.Visible = True ‘hacemos visible el documento
Sheets(“Hoja1”).Range(“A1:B1”).Copy ‘selecionamos y copiamos el rango señalado
varDoc.Documents.Add ‘añadimos hojas al documento
varDoc.Selection.Paste ‘pegamos la selección
varDoc.activedocument.SaveAs ThisWorkbook.Path & “/” & “testWord.doc” ‘guardamos el documento en el directorio raiz como…
varDoc.Documents.Close ‘cerramos  varDoc.Quit
Application.CutCopyMode = False
End Sub

La diferencia si la prueba es notable. Con este método no sabemos lo que está ocurriendo. No aparecen las ayudas visuales cuando se hace referencia a los objetos de Word.

Abrir documentos de Word

Para abrir un documento existente hay que utilizar el método Open. Admite varios parámetros entre ellos Read Only y AddtoRecentFile. Por ejemplo el siguiente código abre un documento existente en forma sólo lectura e impide que el archivo se añada a la lista de archivos recientes, bajo el menú Archivo:

Sub abrir_arc_word()

Documents.Open Filename:=”C:\testWord.doc”, ReadOnly:=True, AddToRecentFiles:=False

End Sub

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: