Artigo original publicado sexta-feira, 09 de setembro de 2011.

Trazido para você pelo nosso especialista em compatibilidade Curtis Sawin

Um dos desafios da migração para o Office 2010 é avaliar o impacto das mudanças do modelo de objeto nos aplicativos do Office. Os profissionais de TI e os desenvolvedores temem que as macros criadas usando uma versão anterior do Excel (por exemplo) possam não funcionar no Excel 2010, porque o modelo de objeto alterou demais. Macros interrompidas parecem quase inevitáveis quando você revisa a lista exaustiva de diferenças nos modelos de objeto entre a versão mais recente dos aplicativos do Office 2010 e suas contrapartes do Office 2007, 2003, XP e 2000 no MSDN (consulte os links no final deste artigo). Entretanto, a maioria das mudança não é impactante e não terá nenhum efeito nas suas macros. O que "a maioria” significa? Veja um resumo abaixo:

  • Há mais de 22.000 itens (propriedades, métodos e constantes) nos modelos de objeto combinados do Excel 2010, Word 2010, PowerPoint 2010, Outlook 2010 e Access 2010
  • Há 2.134 alterações nos modelos de objeto.
  • Há 49 mudanças potencialmente impactantes.

49 mudanças potencialmente impactantes. Em cinco aplicativos. Abrangendo quatro versões anteriores. É isso aí. Veja a seguir um gráfico que resume nossas conclusões:

Este artigo descreve o que queremos dizer com mudanças não impactantes e mudanças potencialmente impactantes. BÔNUS: para referência futura, temos uma tabela que lista todas as mudanças potencialmente impactantes. A tabela também está anexada como um arquivo .pdf no final desta postagem.

Mudanças não impactantes e potencialmente impactantes

A documentação do MSDN fornece todas as mudanças no modelo de objeto para cada aplicativo do Office 2010. As mudanças são organizadas de forma que cada versão anterior do Office liste todos os métodos ou propriedades que foram alterados, removidos ou substituídos.

No Excel 2010, por exemplo, existem quase 900 itens no modelo de objeto que são diferentes das versões anteriores. À primeira vista, isso parece um número grande e assustador. O artigo do MSDN Excel 2010 Object Model Changes Since Earlier Versions lista cada um desses itens que foram alterados. Quando impresso, o artigo tem cerca de 90 páginas.

Itens substituídos - não impactantes

A maioria dessas alterações foi de itens substituídos (também listadas como ocultos). Então, o que é um “item substituído” e como ele afetará suas macros? Se um item for listado como substituído, isso significa que você não deve contar que ele esteja disponível em futuras versões do Office e que você deve planejar a atualização do código no futuro. Entretanto, um item substituído ainda funcionará! Assim, se você tiver um código de macro que foi criado para uma versão anterior do Office e ele contiver métodos, propriedades ou constantes substituídas, nenhuma ação será necessária para que esses itens funcionem no Office 2010. Nenhuma. Para os quase 900 itens alterados (882 para ser exato), 794 são itens substituídos. Isso significa que quase 800 das 900 alterações no modelo de objeto do Excel não causarão nenhum impacto se você tiver esses itens nas suas macros.

Assim, você pode adiar a abordagem de itens substituídos, mas não deve ignorá-los completamente. O código que contém esses itens deve ser revisado e atualizado para ter certeza de que o código substituído de hoje não se torne o código interrompido de amanhã.

Itens removidos – impactantes

Os itens “removidos” são os maiores. Um item que é listado como removido não é mais modelo de objeto no Office 2010. Se você tiver uma macro existente que contenha itens que foram removidos no Office 2010, essa macro não funcionará. Para o Excel 2010, existem 9 itens de modelo de objeto que foram removidos desde as versões anteriores. Esses são os itens nos quais você precisa se concentrar. Substitua-os.

Itens alterados – na sua maioria não impactantes

Os itens “alterados” são métodos e propriedades que foram…bem…alterados desde uma versão anterior. Por exemplo, um método alterado pode retornar um tipo de dados diferente, ou uma propriedade pode ter alterado de “somente leitura” para “leitura/gravação”. Fazendo uma pequena análise, descobrimos que a maioria dos itens alterados envolve a aceitação de um método ou propriedade adicional, parâmetros opcionais. Por exemplo, no Excel 2003, o método ListRows.Add fornece um parâmetro opcional. No Excel 2010, ele fornece dois parâmetros adicionais. A adição do parâmetro opcional não tem nenhum impacto no seu uso. Se você usou esse método no Excel 2003 e só forneceu um parâmetro, o mesmo código funcionará no Excel 2010 sem modificação.

No Excel 2010, existem 97 itens modificados. Nenhum desses itens é potencialmente impactante. Todas as alterações nos itens não afetarão o código existente que contém os itens “alterados”.

Então, dos 882 métodos e propriedades que são diferentes das quatro versões anteriores do Excel, apenas nove serão impactantes.

Nem todos os itens alterados são não impactantes. Por exemplo, no PowerPoint, o método Presentation.SaveAs utiliza um valor padrão diferente para o parâmetro opcional FileFormat. O valor padrão mudou de “1” (ppSaveAsPresentation) no PowerPoint 2003 para “11” (ppSaveAsDefault) no PowerPoint 2010. Assim, se você estiver usando esse método e não estiver fornecendo explicitamente um valor para o parâmetro FileFormat, poderá experimentar diferentes resultados executando uma macro criada no PowerPoint 2003 em comparação ao PowerPoint 2010. Então, dependendo de como você está usando esse método, a alteração é potencialmente impactante.

O OCCI não detectará mudanças do modelo de objeto para mim?

Ferramentas como o Office Code Compatibility Inspector (OCCI) podem ser usadas para digitalizar sua macros para ver se elas contêm o código que foi alterado das versões anteriores. O OCCI fornecerá um relatório que lista o número de itens alterados, substituídos ou removidos. Ele também informará se você está usando alguma referência externa (especialmente importante se você estiver migrando do Office 2010 como parte de uma atualização do sistema operacional), e se você estiver fazendo alguma declaração que não esteja explicitamente marcada para funcionar em um ambiente do Office de 64 bits. Veja a seguir uma captura de tela de um resumo das conclusões do OCCI em uma planilha do Excel com uma macro.

Observe que o OCCI utiliza o termo “reprojetado” que corresponde a “removido”. (Não, eu não sei por que isso é diferente).


Como o OCCI coleta todas as alterações, você deve classificar através da saída para descobrir quais informações são “acionáveis”. O que significa que o OCCI dirá que as “coisas são diferentes”. Mas quais são as coisas que precisam ser corrigidas imediatamente? Quais são as coisas que precisam ser corrigidas com o tempo? O OCCI não fornece informações com esse nível de profundidade. A tabela abaixo visa tratar dessa lacuna. Ela lista todas as alterações potencialmente impactantes; coisas que devem ser avaliadas imediatamente. Dependendo de como elas são usadas, o código que contém esses itens pode não precisar de modificações. Então, trate isso como um guia de ‘início rápido’ para tratar de quaisquer macros. Mas não se baseie mais em nenhuma ferramenta ou mesmo na tabela abaixo. Com o risco de soar redundante, a execução de macros para determinar se elas funcionam é a única maneira segura de verificar se elas funcionam.

Resumo

A tabela abaixo lista todas as alterações como potencialmente impactantes, o que inclui todos os itens removidos e todos os itens alterados potencialmente impactantes. Use essa tabela para identificar rapidamente qual código nela você pode utilizar. Embora você possa usar ferramentas, tais como OCCI, para detectar todas as alterações, essa tabela fornece mais dados acionáveis (e consumíveis), eliminando as alterações do modelo de objeto que não teriam nenhum impacto ao migrar suas macros para o Office 2010.

Um dos desafios de confiar nessas ferramentas é que, em geral, elas fornecem dados que ajudam a responder perguntas técnicas (por exemplo, “o que mudou?”), não perguntas comerciais (por exemplo, “Como isso impactará na minha solução?”). As ferramentas certamente têm o seu lugar para ajudar a automatizar e acelerar os esforços de solução de problemas, mas a dependência excessiva de ferramentas pode influenciar os dados que as elas fornecem a responder as perguntas erradas. Como sempre, o melhor método para garantir se a sua solução funciona ao atualizar para o Office 2010 é realizar o teste do usuário final que envolve realmente usar a solução (em um ambiente de teste, se possível).

 

(Você pode baixar a tabela acima em um arquivo .pdf clicando no link para o .pdf no final desta postagem.)

Para obter mais informações 

O link abaixo fornece as diferenças nos vários modelos de objeto.

 

Essa é uma postagem localizada do blog. Encontre o artigo original em Understanding potentially impactful changes in the Office 2010 object model