Recibirá un error de tiempo de ejecución 4248, 4605 o 5941 cuando intenta cambiar las propiedades de un documento de Word sin abrir


Síntomas


Cuando intenta utilizar Microsoft Visual Basic para Aplicaciones (VBA) para cambiar las propiedades de un documento, puede recibir uno de los siguientes mensajes de error:
Error de tiempo de ejecución '4248':

Este comando no está disponible porque no hay ningún documento abierto.
Error de tiempo de ejecución '4605':
Este método o propiedad no está disponible porque no está activa una ventana de documento.
Error de tiempo de ejecución '5941':
No existe el miembro solicitado de la colección.

Causa


Este problema puede producirse si no tiene un documento abierto, o si el documento que hace referencia no está abierto. Word sólo puede cambiar las propiedades de un documento abierto (o visible).

Nota: Estos mensajes de error también pueden aparecer si abre el documento con la propiedad Visible establecida en
False.

Solución alternativa


Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin garantía expresa o implícita, incluyendo, pero sin limitarse a, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se demuestra y las herramientas utilizadas para crear y depurar procedimientos. Los profesionales de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus necesidades específicas.
Si tiene poca experiencia en programación, desea ponerse en contacto con un Microsoft Certified Partner o servicios de consultoría de Microsoft. Para obtener más información, visite estos sitios Web de Microsoft:

Asociado certificado de Microsoft - https://partner.microsoft.com/global/30000104

Servicios de asesoría de Microsoft: http://support.microsoft.com/gp/advisoryservice

Para obtener más información acerca de las opciones de soporte están disponibles y cómo ponerse en contacto con Microsoft, visite el siguiente sitio Web de Microsoft: http://support.microsoft.com/default.aspx?scid=fh; de EN-US; CNTACTMS
Para obtener información adicional acerca de cómo utilizar el código de ejemplo que se incluye en este artículo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290140 OFFXP: cómo ejecutar código de ejemplo de artículos de Knowledge Base

Las macros de VBA de ejemplo siguientes muestran cómo cambiar el valor del campo título en el
Cuadro de diálogo de Propiedades . En el siguiente ejemplo también incluye código para interceptar el error, en caso de que no hay ningún documento abierto y para mostrar un mensaje:
Sub ChangeDocProperties()

On Error GoTo ErrHandler
ActiveDocument.BuiltInDocumentProperties("Title") = "My Title"
Exit Sub

ErrHandler:
If Err <> 0 Then
'
' Display an error message.
'
MsgBox Err.Description
'
' Clear the error.
'
Err.Clear
Resume Next

End If

End Sub
La siguiente macro de ejemplo incluye código que hará lo siguiente:
  • Capturar el error, en caso de que no hay ningún documento abierto.
  • En la captura del error, cree un nuevo documento.
  • Reanudar su ejecución en la línea que causó el error.
Sub ChangeDocProperties()

On Error GoTo ErrHandler
ActiveDocument.BuiltInDocumentProperties("Title") = "My Title"
Exit Sub

ErrHandler:
If Err <> 0 Then
'
' Add a document.
'
Documents.Add
'
' Clear the error.
'
Err.Clear
'
' Run the code that caused the error.
'
Resume

End If

End Sub

Referencias


Para obtener información adicional acerca de cómo obtener ayuda con VBA, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
305326 OFFXP: recursos de programación para Visual Basic para Aplicaciones