Artículo original publicado el viernes, 9 de septiembre de 2011

Elaborado por nuestro experto en compatibilidad Curtis Sawin

Uno de los desafíos de migrar a Office 2010 es evaluar el impacto de los cambios del modelo de objetos en aplicaciones de Office. Los profesionales de TI y los desarrolladores temen que sea posible que las macros creadas con una versión anterior de Excel (por ejemplo) no puedan trabajar en Excel 2010 porque el modelo de objetos ha cambiado demasiado. Las macros rotas parecen casi inevitables al revisar la lista exhaustiva de diferencias en los modelos de objetos entre la versión más reciente de las aplicaciones de Office 2010 y sus homólogas Office 2007, 2003, XP y 2000 en MSDN (vea los vínculos al final de este artículo). Sin embargo, la mayoría de los cambios no tienen impacto y no tendrán efecto en sus macros. ¿Qué significa “la mayoría”? A continuación, se indica un resumen:

  • Hay más de 22.000 elementos (propiedades, métodos y constantes) en los modelos de objetos combinados de Excel 2010, Word 2010, PowerPoint 2010, Outlook 2010 y Access 2010
  • Hay 2.134 cambios en los modelos de objetos
  • Hay 49 cambios potencialmente impactantes

49 cambios potencialmente impactantes. En 5 aplicaciones. Abarcando 4 versiones anteriores. Eso es todo. Aquí tiene un gráfico en el que resumen nuestras conclusiones:

En este artículo se describe lo que entendemos por cambios no impactantes y cambios potencialmente impactantes. VENTAJA: para su referencia futura, tenemos una tabla en la que se muestran todos los impactos potencialmente impactantes. La tabla se adjunta además como un archivo .pdf al final de esta entrada de blog.

Cambios no impactantes y potencialmente impactantes

La documentación de MSDN ofrece todos los cambios del modelo de objetos para cada aplicación de Office 2010. Los cambios se organizan de manera que cada versión anterior de Office muestra todos los métodos o propiedades que han cambiado, se han quitado o están en desuso.

Por ejemplo, para Excel 2010, hay cerca de 900 elementos que se encuentran en el modelo de objetos que son diferentes de versiones anteriores. A primera vista, esto parece un número elevado y alarmante. El artículo de MSDN acerca de los cambios del modelo de objetos de Excel 2010 desde versiones anteriores muestra cada uno de esos elementos que se han cambiado. Cuando se imprime, el artículo tiene cerca de 90 páginas.

Elementos en desuso - sin impacto

La mayoría de estos cambios son elementos en desuso (también mostrados como ocultos). Por tanto, ¿qué es un "elemento en desuso" y cómo afectará a sus macros? Si un elemento se muestra como que está en desuso, significa que no debería contar con que esté disponible en versiones futuras de Office y que debería planificar para actualizar el código en el futuro. Sin embargo, un elemento en desuso todavía funcionará. Así, si tiene un código de macro que se creó para una versión anterior de Office y contiene métodos, propiedades o constantes en desuso, no hay que realizar ninguna acción para hacer que dichos elementos funcionen en Office 2010. Ninguno. Para los casi 900 elementos cambiados (882 para ser exactos), 794 son elementos en desuso, lo cual significa que cerca de 800 de los 900 cambios del modelo de objetos de Excel no tendrán ningún impacto si tiene dichos elementos en sus macros.

Por tanto, puede posponer el tratamiento de los elementos en desuso, pero no debe omitirlos por completo. Se debe revisar y actualizar el código que contiene dichos elementos para asegurarse de que el código en desuso actual no se convierte en el código roto de mañana.

Elementos quitados - con impacto

Los elementos “quitados” son los importantes. Un elemento que se muestra como quitado ya no se encuentra en el modelo de objetos de Office 2010. Si tiene una macro existente que contiene elementos que se han quitado en Office 2010, dicha macro no funcionará. Para Excel 2010, hay 9 elementos del modelo de objetos que se han quitado desde versiones anteriores. Estos son los elementos que necesitan su atención. Reemplácelos.

Elementos cambiados - la mayoría sin impacto

Los elementos “cambiados” son métodos y propiedades que se han cambiado desde una versión anterior. Por ejemplo, un método cambiado puede devolver un tipo de datos diferentes, o una propiedad puede haber cambiado de “solo lectura” a “lectura/escritura”. Haciendo algo de análisis, descubrimos que la mayoría de los elementos cambiados implican un método o propiedad que acepta parámetros adicionales y opcionales. Por ejemplo, en Excel 2003, el método ListRows.Add ofrece un parámetro opcional. En Excel 2010, ofrece dos parámetros opcionales. La adición del parámetro opcional no tiene ningún impacto en su uso. Si ha usado este método en Excel 2003 y solo ha proporcionado un parámetro, el mismo código funcionará en Excel 2010 sin modificación.

En Excel 2010, hay 97 elementos cambiados. Ninguno de estos elementos es potencialmente impactante. Todos los cambios de los elementos no afectarán al código existente que contiene los elementos “cambiados”.

De modo, que de 882 métodos y propiedades que son diferentes de 4 versiones anteriores de Excel, solo 9 de estos serán impactantes.

No todos los elementos cambiados no tienen impacto. Por ejemplo, en PowerPoint, el método Presentation.SaveAs usa un valor predeterminado diferente para el parámetro opcional FileFormat. El valor predeterminado cambiado de “1” (ppSaveAsPresentation) en PowerPoint 2003 a “11” (ppSaveAsDefault) en PowerPoint 2010. Así, si está usando este método y no está ofreciendo de manera explícita un valor para el parámetro FileFormat, es posible que experimente resultados diferentes ejecutando una macro creada en PowerPoint 2003 que en PowerPoint 2010. Así, en función de la manera en que usa este método, el cambio es potencialmente impactante.

¿No detectará el OCCI los cambios del modelo de objetos por mí?

Las herramientas como el Office Code Compatibility Inspector (OCCI) se pueden usar para examinar las macros para ver si contienen código que se haya cambiado de versiones anteriores. OCCI le ofrecerá un informe que muestre el número de elementos que se han cambiado, están en desuso o se han quitado. También le indicará si está usando referencias externas (especialmente importante si está migrando Office 2010 como parte de una actualización del sistema operativo), y si está realizando declaraciones que no están marcadas explícitamente para funcionar en un entorno de Office de 64 bits. A continuación, se incluye una captura de pantalla de un resumen de conclusiones de OCCI en un libro de Excel con una macro.

Tenga en cuenta que el OCCI usa el término “rediseñado” que se corresponde con “quitado”. (No, no sé porque esto es diferente).


Puesto que el OCCI recoge todos los cambios, debe ordenar el resultado para averiguar qué información es "se puede accionar", lo cual, significa que el OCCI le indicará que las “cosas son diferentes”. Sin embargo, ¿qué aspectos se tienen que corregir inmediatamente? ¿Qué aspectos hay que corregir en un momento dado? El OCCI no ofrece este nivel detallado de información. La tabla siguiente tiene como objetivo tratar esa laguna. Muestra todos los cambios potencialmente impactantes; los aspectos que se deberían evaluar inmediatamente. En función de la manera en que se usan, puede que el código que contiene estos elementos no necesite modificación. Por tanto, trate esto como una guía de "inicio rápido" para abordar la macros. Sin embargo, no se base demasiado en ninguna herramienta o incluso en la siguiente tabla. A riesgo de sonar redundante, la ejecución de las macros para determinar si funcionan es la única manera segura de comprobar su funcionamiento. 

Resumen

En la tabla siguiente se muestran todos estos cambios potencialmente impactantes, lo que incluye todos los elementos quitados, y todos los elementos cambiados potencialmente impactantes. Use esta tabla para identificar con rapidez qué código de esta tabla puede estar usando. Aunque puede usar herramientas como el OCCI para detectar todos los cambios, esta tabla ofrece datos que se pueden accionar (y consumir) más al eliminar cambios del modelo de objetos que no tendrán ningún impacto al migrar las macros a Office 2010.

Uno de los desafíos de depender de herramientas es que suelen ofrecer datos que ayudan a responder preguntas técnicas (por ejemplo, “¿qué ha cambiado?”), no preguntas empresariales (por ejemplo, “¿cómo afectará a mi solución?”). Las herramientas definitivamente tienen su lugar para contribuir a automatizar y agilizar los esfuerzos de solución de problemas, pero la dependencia excesiva en las herramientas puede llevar a sacar provecho de los datos que las herramientas ofrecen para responder a las preguntas incorrectas. Como siempre, el mejor método para asegurarse de si su solución funciona al actualizar a Office 2010 es llevar a cabo pruebas de usuario final que impliquen realmente el uso de la solución (en un entorno de prueba, a ser posible).

 

(Puede descargar la tabla anterior en un archivo .pdf haciendo clic en el vínculo para el .pdf al final de esta entrada de blog.)

Para obtener más información 

En los siguientes vínculos se ofrecen las diferencias de los distintos modelos de objetos.

 

Esta entrada de blog es una traducción. Puede consultar el artículo original en Understanding potentially impactful changes in the Office 2010 object model