Aspectos que hay que tener en cuenta para realizar la automatización de Office en el servidor

Seleccione idioma Seleccione idioma
Id. de artículo: 257757 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Los desarrolladores pueden utilizar la automatización de Microsoft Office para crear soluciones personalizadas que utilicen la capacidad y las funciones integradas en los productos de Office. Aunque este tipo de desarrollos mediante programación se pueden implementar en un sistema cliente con relativa facilidad, pueden surgir diversas complicaciones si la automatización tiene lugar con código del lado servidor como Páginas Active Server de Microsoft (ASP), DCOM o un servicio de Windows NT.

En este artículo se tratan las complicaciones que los desarrolladores pueden encontrar, se ofrecen alternativas a la automatización que pueden acelerar el rendimiento y se sugieren maneras de configurar Office si no es posible evitar la automatización en el servidor. Sin embargo, los desarrolladores deben tener en cuenta que las sugerencias proporcionadas a continuación son sólo de carácter informativo. Microsoft no recomienda ni proporciona soporte técnico para la automatización de Office en el servidor.

Nota: en este contexto, el término "en el servidor" también se aplica al código que se ejecuta en una estación de trabajo Microsoft Windows NT o Microsoft Windows 2000, siempre y cuando se ejecute desde una estación WinStation distinta de la estación interactiva del usuario que haya iniciado la sesión. Por ejemplo, el código que el Programador de tareas inicia en la cuenta SYSTEM se ejecuta en el mismo entorno que el código ASP o DCOM "en el servidor" y, por lo tanto, produce a menudo los mismos problemas. Para obtener más información acerca de WinStation y COM, consulte las secciones "Más información" y "Referencias".

Más información

Todas las versiones actuales de Microsoft Office han sido diseñadas, probadas y configuradas para ejecutarse como productos de usuario final en una estación de trabajo cliente. Asumen un escritorio interactivo y un perfil de usuario, y no proporcionan el nivel de capacidad de volver a entrar o de seguridad necesario para satisfacer las necesidades de los componentes de servidor diseñados para el funcionamiento desatendido.

Actualmente Microsoft no recomienda ni proporciona soporte técnico para la automatización de las aplicaciones de Microsoft Office desde una aplicación o componente cliente desatendido no interactivo (como ASP, DCOM y servicios de NT), ya que Office puede mostrar un comportamiento inestable y quedar interrumpido al ejecutarse en este entorno.

Si va a crear una solución que se ejecuta en un contexto de servidor, siempre que sea posible debe intentar utilizar componentes diseñados para una ejecución desatendida segura o buscar alternativas que permitan que al menos parte del código se ejecute en el cliente. Si decide utilizar una aplicación de Office en una solución de servidor, encontrará que carece de muchas de las capacidades necesarias para funcionar correctamente y estará arriesgando la estabilidad de toda la solución.

Problemas al utilizar la automatización de Office en el servidor

Los desarrolladores que intenten utilizar Office en una solución de servidor deben saber que existen cinco problemas principales por los que Office se comporta de una manera diferente a la esperada debido al entorno. Si desea que el código funcione correctamente, debe solucionar estos problemas y minimizar sus efectos lo más posible. Tenga en cuenta cuidadosamente estos elementos al generar la aplicación porque ninguna solución puede solucionarlos todos y los diferentes diseños requieren que se asignen distintas prioridades a los elementos.
  • Identidad de usuario: las aplicaciones de Office asumen una identidad de usuario al ejecutarse aunque las haya iniciado la automatización. Intentan iniciar las barras de herramientas, menús, opciones, impresoras y algunos complementos de acuerdo con la configuración de la sección del Registro correspondiente al usuario que inicie la aplicación. Muchos servicios funcionan con cuentas que no tienen perfiles de usuario (como las cuentas SYSTEM o IWAM_[nombreDeServidor]) y, por lo tanto, es posible que Office no se inicialice de forma adecuada en el inicio y devuelva un error en CreateObject o CoCreateInstance. Aunque la aplicación de Office pudiera iniciarse, al carecer de un perfil de usuario otras funciones podrían no funcionar de forma adecuada. Si tiene pensado automatizar Office desde un servicio, debe configurar el código u Office de manera que se ejecute con un perfil de usuario cargado.
  • Interactividad con el escritorio: las aplicaciones de Office asumen que se ejecutan en un escritorio interactivo y, en algunas circunstancias, puede ser necesario que determinadas funciones de automatización las perciban para funcionar de forma adecuada. Si ocurre un error no esperado o se requiere un parámetro no especificado para completar una función, Office está diseñado para preguntar al usuario qué desea hacer mediante un cuadro de diálogo modal. Un cuadro de diálogo modal no puede descartarse en un escritorio no interactivo, lo que provoca que ese subproceso deje de responder (se bloquee) indefinidamente. Aunque algunas prácticas de creación de código pueden ayudar a reducir la probabilidad de que esto suceda, no se puede evitar del todo. Sólo por este motivo, la ejecución de aplicaciones de Office en un entorno de servidor resulta arriesgada e incompatible.
  • Capacidad de volver a entrar y escalabilidad: los componentes de servidor tienen que ser componentes COM de subprocesos múltiples con alta capacidad de volver a entrar, un mínimo de sobrecarga y un elevado rendimiento para muchos clientes. En casi todos los aspectos, las aplicaciones de Office son justo lo contrario. Son servidores de automatización sin capacidad de volver a entrar basados en STA, diseñados para proporcionar funcionalidad diversa pero consumidora de recursos para un único cliente. Ofrecen poca escalabilidad como solución de servidor y tienen límites fijos para elementos importantes, como la memoria que no se puede cambiar mediante la configuración. Y lo que es más importante, utilizan recursos globales (como archivos asignados en memoria, complementos o plantillas globales y servidores de automatización compartidos) que pueden limitar el número de instancias que es posible ejecutar simultáneamente y llevar a una situación conflictiva si se configuran en un entorno de clientes múltiples. Los desarrolladores que vayan a ejecutar más de una instancia de alguna aplicación de Office a la vez deben tener en cuenta la posibilidad de "agrupar" o serializar el acceso a la aplicación de Office para evitar posibles bloqueos o daños en los datos.
  • Resistencia y estabilidad: Office 2000, Office XP, Office 2003 y Office 2007 utilizan la tecnología de Microsoft Windows Installer (MSI) con objeto de que la instalación y la reparación automática resulten más sencillas para el usuario final. MSI presenta el concepto "instalar al utilizar por primera vez" que permite la instalación o configuración dinámica de funciones en tiempo de ejecución (al sistema o, con mayor frecuencia, a un usuario determinado). En un entorno de servidor esto reduce el rendimiento y aumenta la probabilidad de que aparezca un cuadro de diálogo que solicite al usuario la aprobación de la instalación o que proporcione un disco de instalación. Aunque esto se ha diseñado para aumentar la resistencia de Office como producto de usuario final, la implementación de las capacidades de MSI en Office resulta contraproducente en un entorno de servidor. Además, la estabilidad general de Office no se puede asegurar en la ejecución en el servidor porque no se ha diseñado o probado para este tipo de uso. El uso de Office como un componente de servicio en un servidor de red puede reducir la estabilidad del equipo y, como consecuencia, de la red en general. Si desea automatizar Office en el servidor, intente aislar el programa en un equipo dedicado que no pueda afectar a funciones críticas y pueda reiniciarse en todo momento.
  • Seguridad en el servidor: las aplicaciones de Office no están diseñadas para utilizarse en el servidor y, por lo tanto, no tienen en cuenta los problemas de seguridad que afectan a los componentes distribuidos. Office no autentica las solicitudes entrantes y no protege de macros ejecutadas involuntariamente o de iniciar otro servidor que pudiera ejecutar macros, desde su propio código de servidor. No abra archivos cargados en el servidor de una web anónima. Basándose en la configuración de seguridad establecida la última vez, el servidor puede ejecutar macros en un contexto de Administrador o Sistema con todos los privilegios y poner en peligro la red. Además, Office utiliza componentes de servidor (como Simple MAPI, Winlet, MSDAIPP) que pueden guardar en memoria información de autenticación de cliente para poder acelerar el procesamiento. Si Office está automatizado en el servidor, una instancia puede dar servicio a más de un cliente y, como la información de autenticación se almacena en caché para esa sesión, es posible que un cliente utilice las credenciales almacenadas en caché de otro cliente y, por lo tanto, obtenga permisos de acceso no concedidos al representar a otros usuarios.
Además de los problemas técnicos, también debe tener en cuenta la viabilidad de tal diseño en relación con las licencias. Las directrices sobre licencias actuales no permiten que las aplicaciones de Office se utilicen en un servidor para dar servicio a solicitudes de clientes, a menos que esos clientes tengan copias con licencia de Office. El contrato de licencia para el usuario final (CLUF) no permite la utilización de la automatización en el servidor para proporcionar funcionalidad de Office a estaciones de trabajo sin licencia.

Además de estos importantes problemas, muchos clientes que no modifiquen la instalación predeterminada de Office pueden recibir uno de los siguientes errores comunes al intentar automatizar en el servidor:
  • CreateObject o CoCreateInstance devuelve uno de los siguientes mensajes de error en tiempo de ejecución y no se puede iniciar para automatización.

    En Microsoft Visual Basic (VB) o ASP:
    • Mensaje 1
      Error en tiempo de ejecución '429': el componente ActiveX no puede crear el objeto
    • Mensaje 2
      Error en tiempo de ejecución '70': permiso denegado
    En Microsoft Visual C o Visual C++:
    • Mensaje 1
      CO_E_SERVER_EXEC_FAILURE (0x80080005): Error en la ejecución de servidor
    • Mensaje 2
      E_ACCESSDENIED (0x80070005): Acceso denegado
    Estos errores tienen lugar porque el código de servidor se ejecuta sin un perfil de usuario o la identidad de usuario especificada en el contexto de inicio no tiene los permisos DCOM adecuados.
  • Al abrir un documento de Office se produce uno de los errores siguientes:
    • Mensaje 1
      Error en tiempo de ejecución '5981' (0x800A175D): No se puede abrir el almacenamiento de macros
    • Mensaje 2
      Error en tiempo de ejecución '1004': error en el método '~' del objeto '~'
    Normalmente, éste es el resultado de la inicialización incorrecta de VBA debido a permisos insuficientes o a la falta de registro del componente VBA, que son frecuentes cuando un usuario ejecuta código desde una cuenta sin perfil de usuario (problema nº 1) y el token de usuario no contiene el identificador de seguridad interactivo (problema nº 2).

  • CreateObject o CoCreateInstance se bloquea y nunca se completa, o tarda mucho en volver. En algunos servidores, la creación es rápida pero aparecen errores 1004 en el registro de eventos de Windows (NT).

    Este problema es normalmente un cuadro de diálogo modal del escritorio no interactivo que ejecuta código en el servidor (problema nº 2). Si el cuadro de diálogo proviene de un problema de la instalación de un componente de MSI (una entrada de registro que falta o una imagen de archivo dañada), solicita el CD de instalación si no puede encontrar el punto de instalación y realiza una nueva instalación de uno o varios componentes (problema nº 4).
  • Algunas funciones dan error inesperadamente o no responden indefinidamente.

    Al no ser interactivos (problema nº 2), algunos recursos como las impresoras, unidades asignadas, objetos incrustados OLE y el Portapapeles pueden no estar disponibles o quedar en un estado indefinido. Del mismo modo, sin un perfil de usuario (problema nº 1), los recursos de red no se encuentran disponibles y los permisos son los mínimos.
  • La ejecución de varias solicitudes o pruebas de esfuerzo puede hacer que el código dé error o no responda en la creación o terminación de una aplicación de Office. Una vez que esto sucede, el proceso queda en ejecución en memoria y no se puede finalizar o todas las instancias de la aplicación automatizada producen errores a partir de ese momento.

    Como las aplicaciones de Office comparten recursos globales (problema nº 3), el acceso a una aplicación de Office debe serializarse en acciones específicas, que incluyen eventos como inicio, apagado, impresión, exportación y actualización de vínculos OLE (y cualquier notificación DDE).
Pueden aparecer otros problemas o mensajes además de los enumerados aquí, pero normalmente ocurren como resultado de los cinco descritos anteriormente. Para superar este tipo de errores, los desarrolladores deben configurar el entorno operativo de Office para simular un estado en el cliente o quitar la aplicación de Office del código de servidor y utilizar en su lugar componentes más escalables (o automatización de cliente).

Utilizar alternativas a la automatización al ejecutar en el servidor

Microsoft recomienda encarecidamente que los desarrolladores busquen alternativas a la automatización de Office si necesitan desarrollar soluciones de servidor. Debido a las limitaciones del diseño de Office, los cambios en la configuración de Office no son suficientes para resolver todos los problemas. Microsoft recomienda varias alternativas que no requieren que Office se instale en el servidor y pueden realizar las tareas más comunes de una manera más eficiente y rápida que la automatización. Antes de utilizar Office como un componente del servidor en su proyecto, tenga en cuenta las alternativas.

La mayoría de las tareas de automatización en el servidor implican la creación de documentos. Como Office 2000 y versiones posteriores son compatibles con HTML como formato de documento nativo, la mayoría de los documentos pueden crearse en HTML, mediante Lenguaje de marcado extensible (XML) cuando sea necesario, y transmitirse a un cliente mediante un tipo Extensiones multipropósito de correo Internet MIME (Multipurpose Internet Mail Extensions) de manera que el texto resultante aparezca en Office. El documento se puede editar, guardar e incluso devolver al servidor cuando sea necesario, con sólo la utilización de ASP en el servidor. En versiones anteriores de Office, otros formatos de texto fácilmente manipulables (como RTF) se pueden utilizar con el mismo propósito.

Algunos formatos binarios nativos se pueden editar mediante los componentes web de Office (OWC) o Objetos de datos ActiveX (ADO) con mucha mayor rapidez y escalabilidad. Las propiedades de documentos se pueden ver o cambiar sin automatización y es posible administrar y crear versiones de archivos mediante Extensiones de servidor de FrontPage (FPSE, FrontPage Server Extensions) o Creación y control de versiones distribuidos (DAV, Distributed Authoring and Versioning). Cuando la automatización sea indispensable, la mayoría de las tareas se pueden descargar al cliente para proporcionar mejor estabilidad y escalabilidad al sistema ya que cada usuario ejecuta la tarea en su propio contexto, con su propia configuración.

Para obtener más información acerca de cualquiera de estos temas y ejemplos sobre cómo implementarlos, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
270906 Cómo usar ASP para generar documentos en formato de texto enriquecido (RTF) para transmitir en secuencias a Microsoft Word
198703 Cómo automatizar Excel desde VBScript de cliente
199841 Cómo mostrar los resultados de ASP con Excel en IE con tipos MIME
224351 Dsofile.dll le permite editar las propiedades de un documento Office sin Office en Visual Basic .NET 2003 y en Visual Basic .NET 2002
244049 Cómo usar la generación de gráficos del lado de servidor para generar gráficos dinámicamente
258187 OWebComp.exe contiene ejemplos de secuencias de comandos para Office 2000 Web Components
260239 Cómo dar formato a los datos de celda cuando está creando un archivo Excel con páginas Active Server
278973 ExcelADO muestra cómo usar ADO para leer y escribir datos en libros de Excel
286023 Cómo utilizar un componente ActiveX de VB para automatización de Word desde Internet Explorer
288130 Cómo usar ASP para crear XML de hoja de cálculo para el cliente
317316 Limitaciones del uso de Office Web Components en el servidor
Si su negocio requiere la creación en el lado servidor de archivos de Office binarios, hay otros proveedores que proporcionan componentes que pueden ayudarle. A continuación, se muestra una lista de algunos proveedores conocidos que proporcionan tales servicios. Esta lista se proporciona únicamente con propósitos informativos. La lista no es exclusiva. Otros proveedores pueden proporcionar servicios similares que le convengan más en su caso. Debería investigar todas las posibles soluciones de terceros para que el proveedor se adecue más a sus necesidades comerciales. Los proveedores siguientes proporcionan actualmente algunas soluciones que permiten la creación y modificación mediante programas de los formatos de archivo originales de Office. Para obtener más información adicional acerca de los demás proveedores, visite los siguientes sitios web:

Aia Software B.V.
http://www.aia-itp.com
Polar
http://www.polarsoftware.com
SoftArtisans
http://www.softartisans.com
SyncFusion
http://www.syncfusion.com
Keylogix
http://www.activedocs.com
Los productos de terceros que se analizan en este artículo están fabricados por compañías independientes de Microsoft. Microsoft no otorga ninguna garantía, implícita o de otro tipo, con respecto al rendimiento o la confiabilidad de estos productos.

Configurar Office para ejecutarlo en el lado servidor

Si otra solución no fuera posible y decide continuar con la automatización de Office en el servidor, debe solucionar muchos de los problemas enumerados anteriormente con objeto de que funcione correctamente en ese entorno. Como la mayoría de los problemas están relacionados con la configuración, no es posible definir un único conjunto de pasos a seguir para que la automatización de Office funcione en el servidor en todos los casos y en todos los sistemas. Algunas opciones de configuración puede entrar en conflicto con otras y existen ventajas y desventajas en cada enfoque. Quizás tenga que experimentar para averiguar qué funciona mejor en su entorno.

Para poder automatizar Office con código en el servidor normalmente tendrá que hacer lo siguiente:
  • Diseñe el proyecto para aislar y encapsular Office.
  • Cree el código del proyecto de forma que se anticipe a los problemas e intente corregirlos dinámicamente.
  • Proporcione a su proyecto una identidad y perfil de usuario específicos para que Office los utilice.
El diseño del proyecto debe tener en cuenta los problemas de seguridad en el servidor y la ausencia de la capacidad de volver a entrar de Office al intentar utilizar la automatización de Office. Limite el uso de Office a una instancia específica controlada mediante un objeto de serialización (de exclusión mutua o primitivo bloqueador personalizado), o "agrupe" un conjunto de instancias estrechamente controladas mediante un controlador de objetos personalizado (o control de interrupción) que pueda emitir objetos de aplicación cuando sea necesario pero controle los aspectos que requieran serialización. Office asume una determinada cantidad de estados, por lo que clientes múltiples que realizan ciertas acciones a la vez (como inicio, apagado, impresión y otras) pueden causar un conflicto y, posiblemente, bloquear una o más subprocesos de llamada al mostrar un error, solicitar al usuario más información o rechazar la liberación de un recurso global que todas las instancias utilizan.

El primer paso, por lo tanto, es limitar el uso de la automatización de Office en el diseño del servidor y aislar el proceso en un equipo no crítico que pueda reiniciarse si es necesario. Aísle el contexto de llamada también, de manera que un cliente que ha llamado y se ha bloqueado no disminuya el rendimiento de un servicio esencial de sistema. Por ejemplo, no automatice directamente en IIS mediante un subproceso de sistema; en su lugar, aísle el código para que se ejecute en su propio subproceso de manera que si se produce un error no reduzca la funcionalidad de IIS en general. Además, considere la manera en que el diseño aplica la seguridad y la autenticación. Como Office no aplica la seguridad en el servidor, el código debe garantizar que sólo los módulos de código "confiables" como páginas ASP, archivos de sripts y otros puedan crear una instancia de automatización de una aplicación de Office y llamar a sus métodos, y que todos los documentos sean seguros antes de solicitar a Office que los abra. Las aplicaciones de Office en un servidor deben ejecutarse con seguridad Alta en todo momento. Si el diseño no aplica la seguridad, el servidor estará en situación de riesgo.

Una vez que el diseño esté preparado, debe crear código defensivo para anticiparse a los problemas y controlar los errores que surjan. Asegúrese de que el código pasa valores de los parámetros opcionales ya que los valores que faltan o entran en conflicto a veces requieren que Office solicite más información al usuario. Utilice el control de errores en todas las funciones para controlar las condiciones de error con facilidad y cerrar los errores mediante código de registro que pueda activarse o desactivarse con una configuración personalizada (en el Registro o en el archivo INI). Si realiza una acción que pueda hacer que aparezca un cuadro de diálogo de error independiente de Office (por ejemplo, la impresión puede causar que el controlador de impresión muestre un cuadro de diálogo si la impresora se queda sin papel), esté preparado para controlar posibles bloqueos mediante un tiempo de espera o un segundo subproceso que supervise el progreso. Para obtener más información, consulte el artículo siguiente en Microsoft Knowledge Base:
259971 Cómo descartar un cuadro de diálogo mostrado por una aplicación de Office con Visual Basic
Utilice código de registro para hacer el seguimiento de los problemas y depurar el programa. Si utiliza un grupo de objetos personalizado, puede agregar pruebas de rendimiento y escalabilidad para supervisar el uso y registrar problemas que afecten a todos los clientes. Un controlador central también puede permitirle terminar instancias errantes de Office y volver a crearlas cuando sea necesario para reforzar la estabilidad general.

Una vez que el programa esté preparado para implementarse, asegúrese de que Office esté configurado de forma adecuada en el servidor para que ejecute un contexto de usuario apropiado. Office requiere un perfil de usuario y para automatizarlo correctamente debe asegurarse de que se carga con uno. Existen tres maneras de hacerlo al trabajar en un entorno de servidor:
  • Configure todas las instancias de la aplicación Office que se inicie mediante automatización para que se ejecute como el usuario interactivo.
  • Configure todas las instancias de la aplicación Office que se inicie mediante automatización para que se ejecute como un usuario específico.
  • Configure el código para que se ejecute como un usuario específico mediante un paquete MTS/COM+ y permita que la aplicación de Office adquiera la identidad del usuario que inicia la aplicación.
Si la primera opción proporciona a Office la identidad e interactividad con un escritorio específico y es la opción preferida a la hora de depurar, ya que Office puede hacerse visible y el usuario registrado de forma local puede ver y registrar cualquier cuadro de diálogo o error de protección general. Requiere que el usuario interactivo mantenga la sesión iniciada para funcionar correctamente, por lo que puede no ser adecuado en algunas situaciones. Para obtener más información, consulte el artículo siguiente en Microsoft Knowledge Base:
288366 Cómo configurar aplicaciones de Office que se ejecutan bajo la cuenta de usuario interactiva
La segunda opción asigna un usuario específico pero no permite la interactividad. Office se inicia como usuario asignado en una nueva WinStation en un escritorio invisible. Esta opción requiere configuración adicional para asegurar que la sección de usuario del Registro se carga, ya que COM/DCOM no lo hace de forma predeterminada. La configuración es global en el sistema, por lo que puede entrar en conflicto con otros programas. Para obtener más información acerca de cómo configurar Office de esta manera, consulte el siguiente artículo en Microsoft Knowledge Base:
288367 Cómo configurar aplicaciones de Office que se ejecutan bajo una cuenta de usuario específica
La tercera opción permite asignar una identidad a un sitio web o módulo de código específico, y evitar configurar una identidad fija para Office de forma global. Office se ejecuta con esa identidad y se carga correctamente siempre y cuando la identidad se haya configurado anteriormente para ese equipo y la sección del Registro se haya cargado. Esta opción es normalmente la más flexible y protegible pero, al igual que la opción anterior, no ofrece interactividad con un escritorio visible y requiere configuración adicional. Para obtener más información acerca de cómo configurar Office de esta manera, consulte el siguiente artículo en Microsoft Knowledge Base:
288368 Cómo configurar aplicaciones de Office para automatización desde un COM +/ paquete MTS
Debe evaluar qué opción de las anteriores satisface sus necesidades y cuál es la mejor manera de implementar la solución. No se garantiza que la información proporcionada aquí solucione todos los problemas de todos los clientes. Se aconseja que realice pruebas exhaustivas antes de la implementación.

Referencias

Para obtener información adicional acerca de la automatización en el servidor, consulte los artículos siguientes en Microsoft Knowledge Base:
169321 Activación de servidores COM y estaciones de trabajo Windows NT

Propiedades

Id. de artículo: 257757 - Última revisión: viernes, 12 de julio de 2013 - Versión: 14.8
La información de este artículo se refiere a:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard
  • Microsoft Outlook 2000 Standard
  • Microsoft Outlook 97 Standard
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Office Project Standard 2007
  • Microsoft Office Project Professional 2007
  • Microsoft Office Project Standard 2003
  • Microsoft Office Project Professional 2003
  • Microsoft Project 2002 Standard
  • Microsoft Project 2000 Standard
  • Microsoft Project 98 Standard
  • Microsoft Office Visio Standard 2007
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Visio Professional 2003
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
  • Microsoft MapPoint 2006 Standard Edition
  • Microsoft MapPoint 2004 Standard Edition
  • Microsoft MapPoint 2002 Standard Edition
  • Microsoft MapPoint 2001 Standard Edition
  • Microsoft MapPoint 2000 Standard Edition
  • Microsoft Office OneNote 2003
  • Microsoft Office OneNote 2007
  • Microsoft Office InfoPath 2007
Palabras clave: 
kbqfe kbautomation kbprogramming kbservice KB257757

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com