Veröffentlichung des Originalartikels: 09.09.2011

Von unserem Kompatibilitätsexperten Curtis Sawin

Eine der Herausforderungen bei der Migration zu Office 2010 ist die Bewertung der Auswirkungen von Objektmodelländerungen in Office-Anwendungen. IT-Spezialisten und Entwickler befürchten, dass mit einer früheren Version von beispielsweise Excel erstellte Makros nicht in Excel 2010 verwendet werden können, da das Objektmodell zu stark verändert wurde. Fehlerhafte Makros scheinen fast unausweichlich zu sein, wenn man die umfangreiche Liste von Unterschieden bei den Objektmodellen zwischen der neuesten Version von Office 2010-Anwendungen und deren Entsprechungen Office 2007, Office 2003, Office XP und Office 2000 auf MSDN betrachtet (siehe die Links am Ende dieses Artikels). Die meisten Änderungen sind jedoch Änderungen ohne Auswirkungen, das heißt, sie haben keinerlei Auswirkungen auf Ihre Makros. Im Folgenden finden Sie eine Übersicht darüber, was „die meisten Änderungen“ in diesem Zusammenhang bedeutet:

  • Es gibt über 22.000 Elemente (Eigenschaften, Methoden und Konstanten) in allen Objektmodellen von Excel 2010, Word 2010, PowerPoint 2010, Outlook 2010 und Access 2010
  • Es gibt 2.134 Änderungen bei den Objektmodellen
  • Es gibt 49 Änderungen mit potenziellen Auswirkungen

49 Änderungen mit potenziellen Auswirkungen. In 5 Anwendungen. Verteilt auf 4 frühere Versionen. Das ist alles. Das folgende Diagramm enthält eine Zusammenfassung unserer Ergebnisse:

In diesem Artikel wird beschrieben, was mit Änderungen ohne Auswirkungen und Änderungen mit potenziellen Auswirkungen gemeint ist. BONUS: Als zukünftige Referenz gibt es eine Tabelle mit allen Änderungen mit potenziellen Auswirkungen. Diese Tabelle finden Sie auch als PDF-Datei am Ende dieses Beitrags.

Änderungen ohne Auswirkungen und Änderungen mit potenziellen Auswirkungen

In der MSDN-Dokumentation finden Sie alle Änderungen beim Objektmodell für jede Office 2010-Anwendung. Die Änderungen sind so angeordnet, dass für jede vorherige Office-Version alle Methoden oder Eigenschaften aufgelistet werden, die entweder geändert oder entfernt wurden oder veraltet sind.

Beispielsweise gibt es für Excel 2010 fast 900 Elemente im Objektmodell, die im Vergleich zu früheren Versionen geändert wurden. Auf den ersten Blick scheint es sich um eine große und beunruhigende Anzahl von Elementen zu handeln. Im MSDN-Artikel Änderungen beim Objektmodell in Excel 2010 im Vergleich zu früheren Versionen werden alle diese geänderten Elemente aufgelistet. Der ausgedruckte Artikel besteht aus etwa 90 Seiten.

Veraltete Elemente – ohne Auswirkungen

Die Mehrzahl dieser Änderungen betrifft veraltete (auch als ausgeblendet aufgelistete) Elemente. Was genau ist also ein „veraltetes Element“, und wie wirkt es sich auf Ihre Makros aus? Wenn ein Element als veraltet aufgelistet wird, bedeutet dies, dass Sie nicht damit rechnen sollten, dass es in zukünftigen Versionen von Office verfügbar ist, und dass Sie den Code in Zukunft aktualisierten sollten. Ein veraltetes Element ist jedoch weiterhin funktionsfähig! Wenn also ein für eine frühere Office-Version erstellter Makrocode veraltete Methoden, Eigenschaften oder Konstanten enthält, sind keinerlei Maßnahmen erforderlich, damit diese Elemente in Office 2010 funktionsfähig sind. Von den beinahe 900 geänderten Elementen (882, um genau zu sein) sind 794 veraltete Elemente. Dies bedeutet, dass beinahe 800 der 900 Änderungen beim Excel-Objektmodell keine Auswirkungen haben, wenn diese Elemente in Ihren Makros verwendet werden.

Sie können sich also später um veraltete Elemente kümmern, sollten sie aber nicht vollständig ignorieren. Code, der solche Elemente enthält, sollte überprüft und aktualisiert werden, um sicherzustellen, dass heute veralteter Code nicht morgen zu fehlerhaftem Code wird.

Entfernte Elemente – mit Auswirkungen

„Entfernte“ Elemente sind das große Thema. Ein Element, das als entfernt aufgelistet wird, befindet sich nicht mehr im Office 2010-Objektmodell. Wenn ein vorhandenes Makro Elemente enthält, die in Office 2010 entfernt wurden, ist dieses Makro nicht funktionsfähig. Für Excel 2010 gibt es 9 Objektmodellelemente, die im Vergleich zu früheren Versionen entfernt wurden. Um diese Elemente müssen Sie sich kümmern und sie ersetzen.

Geänderte Elemente – überwiegend ohne Auswirkungen

„Geänderte“ Elemente sind Methoden und Eigenschaften, die im Vergleich zu einer früheren Version…nun ja…geändert wurden. Beispielsweise könnte eine geänderte Methode einen anderen Datentyp zurückgeben, oder eine Eigenschaft wurde von „schreibgeschützt“ in „Lese-/Schreibzugriff“ geändert. Anhand einer schnellen Analyse kamen wir zu dem Ergebnis, dass die meisten geänderten Elemente eine Methode oder Eigenschaft beinhalten, für die zusätzliche, optionale Parameter zulässig sind. Beispielsweise weist in Excel 2003 die ListRows.Add-Methode einen einzigen optionalen Parameter auf. In Excel 2010 gibt es dagegen zwei optionale Parameter. Der zusätzliche optionale Parameter hat keine Auswirkungen auf die Verwendung der Methode. Wenn Sie diese Methode in Excel 2003 verwenden und nur einen Parameter angeben würden, kann derselbe Code in Excel 2010 ohne Änderungen verwendet werden.

In Excel 2010 gibt es 97 geänderte Elemente. Keines dieser Elemente hat potenzielle Auswirkungen. Keine der Änderungen bei den Elementen hat Auswirkungen auf bestehenden Code, der die „geänderten“ Elemente enthält.

Von 882 Methoden und Eigenschaften, die sich von 4 vorherigen Versionen unterscheiden, haben nur 9 Auswirkungen.

Nicht alle geänderten Elemente haben keine Auswirkungen. Beispielsweise verwendet die Presentation.SaveAs-Methode in PowerPoint einen anderen Standardwert für den optionalen FileFormat-Parameter. Der Standardwert wurde von 1 (ppSaveAsPresentation) in PowerPoint 2003 in 11 (ppSaveAsDefault) in PowerPoint 2010 geändert. Wenn Sie also diese Methode verwenden und nicht explizit einen Wert für den FileFormat-Parameter angeben, können sich bei einem in PowerPoint 2003 erstellten Makro und bei einem in PowerPoint 2010 erstellten Makro unterschiedliche Resultate ergeben. Deshalb hat die Änderung in Abhängigkeit von der Verwendung dieser Methode potenziell Auswirkungen.

Werden Änderungen beim Objektmodell nicht von OCCI erkannt?

Mithilfe von Tools wie OCCI (Office Code Compatibility Inspector) können die Makros überprüft werden, um festzustellen, ob sie Code enthalten, der im Vergleich zu früheren Versionen geändert wurde. OCCI liefert einen Bericht mit der Anzahl von Elementen, die geändert oder entfernt wurden oder veraltet sind. Sie erfahren darin außerdem, ob sie externe Bezüge verwenden (besonders wichtig bei der Migration von Office 2010 im Rahmen eines Betriebssystemupgrades) und ob Sie Deklarationen verwenden, die nicht explizit für die Verwendung in einer 64-Bit-Office-Umgebung ausgewiesen sind. Der folgende Screenshot enthält eine Zusammenfassung der OCCI-Ergebnisse einer Excel-Arbeitsmappe mit einem Makro.

Beachten Sie, dass in OCCI der Begriff „umgestaltet“ (redesigned) verwendet wird, der „entfernt“ entspricht (keine Ahnung, warum das so ist).


OCCI erfasst alle Änderungen. Deshalb müssen Sie die Ausgabe durchgehen, um festzustellen, für welche Informationen Maßnahmen ergriffen werden müssen. Das heißt, OCCI informiert Sie, welche Elemente geändert wurden. Was muss aber sofort korrigiert werden? Was muss irgendwann korrigiert werden? Diesen Grad an Information liefert OCCI nicht. Mit der nachfolgenden Tabelle soll diese Lücke geschlossen werden. Hier werden alle Änderungen mit potenziellen Auswirkungen aufgelistet, also Dinge, die sofort analysiert werden sollten. In Abhängigkeit von der Verwendung der Elemente muss Code, der diese Elemente enthält, möglicherweise nicht geändert werden. Betrachten Sie dies deshalb als „Schnellstartanleitung“ zur Behandlung von Makros. Sie sollten jedoch nicht blind auf Tools und auch nicht auf die folgende Tabelle vertrauen. Im möchte mich ungern wiederholen, aber das Ausführen der Makros ist die einzig sichere Methode, um festzustellen, ob sie funktionsfähig sind. 

Zusammenfassung

In der nachfolgenden Tabelle werden alle Auswirkungen mit potenziellen Änderungen aufgelistet. Hierzu zählen alle entfernten Elemente und alle geänderten Elemente mit potenziellen Änderungen. Anhand dieser Tabelle können Sie schnell feststellen, welchen Code in dieser Tabelle Sie verwenden. Mithilfe von Tools wie z. B. OCCI können Sie zwar alle Änderungen ausfindig machen, aber diese Tabelle liefert aussagekräftigere (und brauchbarere) Daten, wenn Objektmodelländerungen eliminiert werden, die keinerlei Auswirkungen auf die Migration Ihrer Makros zu Office 2010 haben.

Wenn Sie sich auf Tools verlassen, sollten Sie beachten, dass sie in der Regel Daten liefern, mit denen technische Fragen beantwortet werden (z. B. „was wurde geändert?“), jedoch keine unternehmerischen Fragen (z. B. „welche Auswirkung hat dies auf meine Lösung?“). Tools haben mit Sicherheit ihren Platz, um die Problembehandlung zu automatisieren und zu beschleunigen. Blindes Vertrauen in Tools kann jedoch dazu führen, dass mit den von diesen Tools gelieferten Daten die falschen Fragen beantwortet werden. Die beste Methode, um die Funktionsfähigkeit Ihrer Lösung beim Upgraden auf Office 2010 sicherzustellen, sind Tests mit Endbenutzern, bei denen die Lösung tatsächlich verwendet wird (möglichst in einer Testumgebung).

 

(Die obige Tabelle können Sie als PDF-Datei herunterladen, indem Sie am Ende dieses Beitrags auf den Link für die PDF-Datei klicken.)

Weitere Informationen 

Über die folgenden Links können Sie sich über die Unterschiede bei den verschiedenen Objektmodellen informieren.

 

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Understanding potentially impactful changes in the Office 2010 object model