(C) 2009 - 2018 by Mourad Louha · Alle Rechte vorbehalten

Die wichtigsten Änderungen in VBA für Excel 2010

In diesem Artikel werden wir auf die Änderungen und Erweiterungen eingehen, die bislang am Excel VBA Objektmodell vorgenommen wurden. Vorab, diese sind nicht unerheblich, wir haben 25 neue Objekte und über 400 Eigenschaften, Methoden oder Ereignisse gefunden, Konstanten haben wir noch nicht ermittelt. Jetzt habe ich jedoch nicht alle im Excel 2010 Objektkatalog vorhandenen Elemente manuell mit den in älteren Excel Versionen vorhandenen Einträgen verglichen, das wäre dann doch zuviel Aufwand. Das geht viel einfacher: ich habe ein Tool entwickelt, welches eine spezielle Windows Bibliothek verwendet, um alle Objekte, Methoden, Eigenschaften und Ergeignisse einer anderen Bibliothek per Code auszulesen und dann miteinander zu vergleichen. Diese kleine Anwendung werde ich übrigens zu einem späteren Zeitpunkt jedem Interessierten als Freeware zur Verfügung stellen, insofern „please stay tuned“. Eine Excel-Datei, die das Ergebnis des Tools des Vergleichs der VBA Funktionen in den verschiedenen Excel Versionen auflistet, kann vorab schonmal am Ende des Artikels heruntergeladen werden.

Schauen wir uns mal den Objektkatalog von Excel 2010 an, am VBA-Editor konnte ich bislang keine Veränderungen in Excel 2010 feststellen. Ich habe in folgender Abbildung eines der neuen Objekte ausgewählt:

Excel 2010 VBA

Insgesamt sind beim Slicer Objekt bzw. Klasse 19 neue Eigenschaften und eine Methode zu finden. Wie in VBA üblich, viele der Eigenschaften sind von ihrem Namen her selbsterklärend.

In weiteren Artikeln werden wir einige dieser neuen Funktionen ausprobieren und Testprogramme schreiben, hier listen wir zunächst die vorläufigen neuen Objekte auf. Vorläufig deshalb, weil es sich ja um eine Technical Preview von Excel 2010 handelt und sich somit bis zur Finalversion noch einiges ändern kann. In den folgenden Beschreibungen können wir teilweise nur Vermutungen anstellen, da die Excel Hilfe noch nicht fertig ist und somit keine Dokumentation vorliegt.

Objekt Kurzbeschreibung
AddIns2 Enthält dieselben Eigenschaften wie AddIn, warum diese Klassen enthalten ist, können wir noch nicht sagen.
DataBarBorder Dürfte ein Objekt zum Ansprechen von der Rahmen von Databars sein, ein Objekt für bedingte Formatierungen.
DisplayFormat Enthält einige Eigenschaften, die sich auf die Anzeige von Zellen beziehen.
NegativeBarFormat Scheint sich auf Elemente zur Darstellung negativer Formatierungsbalken zu beziehen.
PivotTableChangeList Eine Auflistung von ValueChange Objekten.
ProtectedViewWindow Enthält Eigenschaften zur Höhe, Breite oder Sichtbarkeit der Fenster von Dokumenten im ProtectedView Modus.
ProtectedViewWindows Eine Auflistung von ProtectedViewWindows Objekten.
Slicer Enthält Eigenschaften und Methoden zu einem Slicer.
SlicerCache Enthält Referenzierungen zu Slicers, SlicerCacheLevels und PivotTables, so richtig klar ist mir das noch nicht.
SlicerCacheLevel Wie mit dem SlicerCache, muss ich mit diesem Objekt zunächst noch experimentieren.
SlicerCacheLevels Eine Auflistung von SlicerCacheLevel Objekten.
SlicerCaches Eine Auflistung von SlicerCache Objekten.
SlicerItem Enthält Eigenschaften und Methoden zu einem Slicer Element.
SlicerItems Eine Auflistung von SlicerItem Objekten.
SlicerPivotTables Scheint speziell für an Pivot-Tabellen gekoppelte Slicer entworfen zu sein, da sich hier die Methoden AddPivotTable() und RemovePivotTable() vorhanden sind.
Slicers Eine Auflistung von Slicer Objekten.
SparkAxes Enthält Eigenschaften, ob vertikale und/oder horizontale Axen in einer Sparkline enthalten sind.
SparkColor Bezieht sich auf die Farbe von Sparklines.
SparkHorizontalAxis Enthält Eigenschaften zur horizontalen Achse einer Sparkline.
Sparkline Enthält Methoden und Eigenschaften zu einer Sparkline.
SparklineGroup Enthält Methoden und Eigenschaften zu einer Sparkline-Gruppe.
SparklineGroups Eine Auflistung von SparklineGroup Objekten
SparkPoints Enthält Eigenschaften, zu den Punkten einer Sparkline, wie z.B. höchste oder niedrigster Punkt.
SparkVerticalAxis Enthält Eigenschaften zur vertikalen Achse einer Sparkline.
ValueChange Ist mir noch nicht klar, wie dieses Objekt einzusetzen ist.

Zusätzlich zu den neu hinzugefügten Objekten, wurden auch einige bereits bestehende Objekte um neue Funktionen und Eigenschaften ergänzt. Ein paar habe ich mal herausgesucht, da diese recht interessant scheinen:

AppEvents  
ProtectedViewWindowActivate
ProtectedViewWindowBeforeEdit
ProtectedViewWindowOpen
ProtectedViewWindowResize
Neue Ereignisse, die sich auf ProtectedView Fenster beziehen.
 
Application  
ActiveProtectedViewWindow Ähnlich wie ActiveSheet, in diesem Fall bezogen auf das aktuell aktive ProtectedView Fenster.
ClusterConnector Ein String, wofür kann ich noch nicht sagen.
IsSandboxed Dürfte True sein, wenn die Mappe im Sandbox Modus geladen wurde.
SaveISO8601Dates Die Umsetzung der neuen Einstellung in den Excel Optionen.
 
AxisTitle  
Width Breite einer Achsenbeschriftung, Double.
 
CalculatedMember  
DisplayFolder
Dynamic
FlattenHierarchies
Einige neue Eigenschaften zum Objekt CalculatedMember.
 
ChartTitle  
Formula Formel im Diagrammtitel.
 
DisplayUnitLabel  
Formula Formel in der Einheitenbeschriftung.
 
PivotTable  
AllocateChanges
Allocation
AllocationMethod
AllocationValue
Slicers
Summary
Einige neue Methoden und Eigenschaften für Pivot-Tabellen.
 
Range  
ClearHyperlinks Hyperlinks in einem Bereich löschen.
DisplayFormat Neue Eigenschaft bzw. Referenz auf ein DisplayFormat Objekt.
SparklineGroups Referenz auf Sparkline Gruppe in einem Bereich.
 
Shapes  
AddSmartArt Neue Methode zu Hinzufügen eines SmartArt Objektes als Shape, ähnlich wie z.B. AddTextbox().
 
SpellingOptions  
ArabicStrictAlefHamza Umsetzung einer neuen Einstellung in den Excel Optionen.
 
WorksheetFunction  
Beta_Dist
Beta_Inv
Confidence_Norm
Beispiele zur Umsetzung der neuen Excel Formeln

Wie sehen, VBA wird von Microsoft in Excel 2010 fleißig weiterentwickelt. Abschließend eine Abbildung zum Ergebnisblatt des Tools:

Excel 2010 VBA

Diese Datei können Sie hier Excel 2010 VBA im Vergleich zu Excel 2007 und 2003 herunterladen. Beachten Sie bitte, dass dieser Link nur angeklickt funktioniert und wenn Ihr Browser einen Referer sendet. Ausserdem übernehmen wir natürlich in keinster Weise irgendeine Haftung für die Richtigkeit der Angaben in der Datei.

Mourad Louha

Über den Autor · Mourad Louha

Mourad arbeitet seit 2005 als selbständiger Softwareentwickler und Trainer und lebt in Aachen, gelegen am Dreiländereck Belgien, Deutschland und Niederlande. In seiner Freizeit engagiert er sich in Online Communities rund um Office, schreibt beim Excel Ticker Artikel zu Office & Co. und betreibt weitere Community Projekte in Zusammenarbeit mit Freunden und Partnern, wie das Forum zu Microsoft Office 365 und Office 2013, den Excel Soccer oder den Excel Formel Übersetzer. Für sein außergewöhnliches Engagement wurde er seit Januar 2011 jährlich von Microsoft als Microsoft Most Valuable Professional (MVP) ausgezeichnet.

 
Comments

Ich habe ein sehr unglückliches Problem mit EXCEL 2010 (englische Version), dass ich vor einem Monat auf meinem neuen PC (INTEL 6-core CPU, 6GB DRAM) installiert habe.

Die Anwendung:
Ich bin ein „Financial Engeneer“, habe sehr viel Spass am Modellieren und Umsetzung der Ideen in C++ in Kombination mit VBA/EXCE. Noch mit EXCEL 2002 habe ich eine Workbook für eine Monte Carlo Simulation entwickelt, das auf EXCEL 2002 für 1,000 Pfade etwa 2.5h benötigt. Im dazugehörigen VBA Macro sind eine gute Anzahl von C++ Dll eingebettet. Eine von diesen liest etwa 120mb Daten ein, die dann sehr effizient in Excel hieneingeschossen werden. Durch diesen Trick hat das Workbook nur etwa 10mb Größe, und die Anwendung kann überhaupt nur in EXCEL umgesetzt werden.

Das Problem:

In EXCEL 2010 benötigt das gleiche Programm jetzt plötzlich knapp 10h, mit anderen Worten, ich kann hier das Programm nicht mehr verwenden, die Lösung des Problems ist wieder nur Mainframes und Clusters vorbehalten. An MS habe ich schon geschrieben. Deren leider nutzloser Vorschlag: Umbennen der Registry Einträge von EXCEL in EXCEL_old.

Was ist hier zu tun? Haben Sie eine Idee oder kennen Sie jemanden mit einer Idee. haben Kollegen ähnliche Probleme etc.

mit freundlichen Grüßen, Harald Hubbes

Hallo Harald,

Das Thema C++/VBA hört sich sehr spannend an. Leider kann ich momentan so erst auch nicht viel dazu sagen.

Ich kann allerdings anbieten, mit meinen Excel Versionen einen Test zu fahren und es mir genauer anzuschauen. Welches Betriebssystem wird verwendet? Was passiert, wenn der VBA Code Stück für Stück ausgeführt wird?

Falls Interesse besteht, einfach mir eine Mail schreiben an vba (at) maninweb (punkt) de.

Viele Grüße

Moin an alle Leser und den Autor,

vor dem Download der Übersicht der VBA Elemente 2003/2007/2010 sollte sich jeder ernsthaft überlegen, was ihm ein Blatt mit 7200 Zeilen nützt, das per unbekanntem Passwort geschützt ist. Ganz sicher nichts.
Meine einzige plausible Erklärung für diesen Umstand ist, dass hier (zweifellos vorhandenes) Knowhow präsentiert werden soll, von dem der Leser aber aus wirtschaftlichen Gründen keinen Nutzen haben darf.
Feedback meinerseits: Gute Idee, aber in dieser Form wertlos. Vielleicht ist diese Form der Auflistung sowieso unspannend, weil man (Aufwärts-)Kompatibilität damit nicht sichtbar machen kann.
Da hier bewusst nicht mit offenen Karten gespielt wird, behalte ich auch meine eigene Erfahrungen diesbezüglich zurück.

Viele Grüße, Arno

Hallo Arno…

Ich gehe mal davon aus, dass Dir der Folgebeitrag Excel VBA Typelib Scanner zum Vergleich von Office 2010, 2007 und 2003 entgangen ist. Das Tool zum Scannen der VBA Lib’s hatte ich übrigens ebenfalls in diesem Beitrag angekündigt, Zitat: „Diese kleine Anwendung werde ich übrigens zu einem späteren Zeitpunkt jedem Interessierten als Freeware zur Verfügung stellen…“ Das Kennwort zu dieser Datei, die hier heruntergeladen werden kann, ist übrigens „maninweb“.

Auf die anderen Punkte muss und werde ich hier nicht weiter eingehen.

Gruß

Trackbacks for this post

Leave a Reply