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

Dieser Artikel beschreibt und listet kurz die Veränderungen auf, die bislang am Word 2010 VBA Objektmodell vorgenommen wurden. Insgesamt haben wir bislang 12 neue Objekte und über 200 neue oder geänderte Funktionen bzw. Eigenschaften gefunden. Um die Änderungen zu ermitteln, haben wir unser selbst entwickeltes Tool in Excel verwendet, welches folgendes Ergebnis liefert:

Word 2010 VBA

Read more


Ausgehend von den Ergebnissen meines Tools zum Vergleich der VBA Funktionen zwischen Excel 2010, Excel 2007 und Excel 2003, scheint mir der nächste logische Schritt das systematische Testen der neuen Methoden, Ereignisse, Eigenschaften und Konstanten zu sein.

Leider ist noch keine Dokumentation zu den neuen VBA Funktionen in meiner installierten Version enthalten. Zwar kann oft anhand der Benennung der VBA Elemente dessen Zweck erraten werden, immer wird dies, so denke ich, nicht möglich sein.

Heute habe ich mir die Objekte „Workbooks“, „Workbook“ und „AppEvents“ näher angeschaut. Während in der Auflistung „Workbooks“ in der aktuellen Beta Version von Excel 2010 keine Änderungen festzustellen sind, sind in „Workbook“ einige neue Ereignisse, Methoden und Eigenschaften hinzugekommen, die ich persönlich sehr interessant finde.

VBA Workbook Object

Read more


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.

Read more


Im Rahmen unseres Projektes zur Generierung von Seriennummern stellte sich das Problem, ein Papierformat eines speziell zum Ausdruck von Typenschildern installierten Druckers anzusprechen. Das dauerhafte Umstellen des Standarddruckers in Windows war keine Lösung, denn zum Einen nutzen die Benutzer unsere Anwendung parallel mit weiteren Excel Arbeitsmappen und zum Anderen sich verschiedene Größen von Typenschildern zu drucken. Auch das ständige Auswählen des Druckers wäre nicht praktikabel.

Im Folgenden werden wir unsere Windows API Lösung vorstellen, die einerseits das Auswählen eines Druckers ermöglicht und andererseits alle verfügbaren Papierformate eines Druckers anbietet. Der Code hierzu den wir an dieser Stelle freigeben ist nur ein Auszug aus der Echtanwendung. Letztere merkt sich pro einer Maschine assoziiertes Typenschild das passende Format und den passenden Drucker. Somit braucht der User nur noch kurz die Angaben prüfen und kann sich auf das Wesentliche konzentrieren.

In der Beispielanwendung – die sie auch herunterladen können – haben wir eine Userform erstellt, die zwei Kombinbationsfelder enthält. Erstere nimmt die Liste der installierten Drucker auf, die zweite Combobox enthält nach Auswahl eines Druckers die passenden Papierformate.

Drucker und Papierformate in VBA ermitteln und verwenden

Read more


Vor einiger Zeit hatte ich in diesem Artikel Prototyping von Microsoft Office JavaScript Add-Ins mit Script Lab ein Office JavaScript Add-In vorgestellt und aufgezeigt, wie mit dem Add-In z.B. Prototypen eigener Office JS Anwendungen erstellt werden können. Script Lab ist ein Open Source Projekt einiger Microsoft Mitarbeiter aus dem Extensibility Team. Das Projekt zu Script Lab ist bei GitHub zu finden. Wenn Sie Script Lab noch nicht kennen, empfehle ich, den zuvor genannten Artikel zu lesen.

Ich hatte dem Entwicklerteam bei Microsoft angeboten, dieses bei einer Übersetzung in Deutsch zu unterstützen. Vor wenigen Tagen ist nun eine erste lokalisierte Version erschienen. Bei der Gelegenheit möchte ich auch dem Team bei Microsoft herzlichst danken, denn es waren ja nicht nur die Texte zu übersetzen, sondern es musste auch der Code modifiziert werden. Diese Code-Änderungen haben nun auch den Nebeneffekt, dass Script Lab auch in weitere Sprachen relativ einfach übersetzt werden kann.

Script Lab in Deutsch

Die Version 1.1.0 vom 27. Juli 2017 zeigt allerdings noch nicht alle Elemente in Deutsch an. So sind die Befehle im Menüband noch in Englisch zu sehen. Dies ist dem Entwicklerteam jedoch bekannt und wird in Kürze behoben. Der Screenshot hier oben zeigt meine Entwicklerversion, wo die Menübefehle bereits in Deutsch erscheinen. Die Beispieldateien wurden übrigens nicht übersetzt und dies ist auch nicht vorgesehen.

Nebenbei, Script Lab steht zudem auch in Spanisch zur Verfügung. Das Entwicklerteam ist auf der Suche nach weiteren Übersetzungen. Wenn Sie beispielsweise Französisch beherrschen und das Team unterstützen möchten, posten Sie einfach eine Anfrage in der Rubrik Issues in GitHub. Wie eine solche Übersetzung von statten geht, wird auf der Startseite des Projekts in dem Dokument Translating.md beschrieben.

Nach diesem kleinen Exkurs, nun aber zurück zum Zweck dieses Artikels: in Script Lab lassen sich eigene Scripte exportieren, sodass diese wie ein Add-In in Office-Online ausgeführt und von Ihnen oder auch anderen Personen getestet werden können. In diesem Artikel zeige ich auf, wie Sie dies für Excel-Online durchführen und was dabei zu beachten ist. Analog lässt sich dies natürlich auch mit Word oder PowerPoint machen.

Read more


Einige von Ihnen werden sicherlich den Excel WM Planer für die Fußballweltmeisterschaft 2010 in Südafrika kennen. Vor kurzem habe ich ein Excel VBA Zusatztool zum WM Planer auf dessen Website angekündigt, welches den Import und Export von Tipps aus dem Tippspiel ermöglichen soll, eine Navigationshilfe und weitere Features beinhalten wird.

Nun habe ich mir überlegt, alle Interessierten an der Entwicklung des Tools teilhaben zu lassen und nach ausgewählten Entwicklungsabschnitten einen entsprechenden Blogartikel zu schreiben, in welchem Teile oder Auszüge des Codes vorgestellt werden. Nach Abschluß der Entwicklung des Tools wird nochmal ein Artikel mit einer Übersicht der Artikelserie erscheinen.

Den Anfang dieser Serie bildet heute die Entwicklung von eigenen Tooltips, wie sie beispielsweise in den Word 2010 Optionen zu finden sind. Folgend ein Screenshot der englischen Optionen zu Word 2010; zu sehen ist das kleine „i“, welches, wenn man mit dem Mauszeiger darüber fährt, einen Hilfetext erscheinen lässt.

VBA Tooltips

Read more


Wie Ihnen sicherlich bekannt ist, können mit VBA sehr komplexe Anwendungen entwickelt werden, die Prozesse in Unternehmen optimieren und vereinfachen. Dennoch stößt VBA langsam an seine Grenzen und wird sicherlich in Zukunft aus den Office Anwendungen verschwinden. Ein großes Manko von VBA Anwendungen sind beispielsweise der einfach auszuhebelnde Schutz des Quellcodes oder die fehlenden modernen Werkzeuge zur Quellcode-Verwaltung und Speicherverwaltung. Mit VSTO – Visual Studio Tools for Office – stellt Microsoft spezielle Vorlagen und Schnittstellen in Visual Studio zur Verfügung, die es ermöglichen Office Anwendungen auf Basis von .NET zu entwicklen. Heißt, die komplette Power der .NET Bibliotheken steht dann zur Verfügung. Und, ein wichtiger Aspekt, der Code wird „verwaltet“, was wiederum eine erhöhte Sicherheit bedeutet, denn jede Codezeile wird vor Ausführung auf Ihre Berechtigungen überprüft.

Mit VSTO lassen sich einerseits dokumentzentrierte Lösungen erstellen und anderseits anwendungsbasierte Lösungen erstellen. Erstere stellen Zusatzfunktionen auf Basis einen Excel oder Word Dokumentes bereits, zweiteres auf Anwendungsebene, also zum Beispiel Add-Ins. VSTO setzt Visual Studio voraus, mittlerweile ist VSTO in der Version 3.0 verfügbar.

Auch ich beschäftige mich schon seit einiger Zeit eher spielerisch mit den neuen Möglichkeiten. Mein Ziel ist logischerweise hierbei, meine Anwendungen in naher Zukunft möglichst effektiv in einem überschaubaren Zeitraum portieren zu können. Sicherlich werde ich nicht herumkommen einen Teil des Codes neu zu schreiben, bei über 50.000 Zeilen für manche Anwendungen sicherlich nicht in einigen Tagen zu erledigen. Deshalb habe ich mich umgeschaut, ob es Möglichkeiten gibt diesen Prozess etwas zu vereinfachen und bin auf das Produkt der Firma „Add-In Express“ gestoßen.

Read more


Wie bereits in ersten Teil des Beitrags angekündigt, möchte ich über meine Erfahrungen bei der Portierung von VBA Anwendungen zu .NET berichten. Jetzt, nach einigem Experimentieren mit Visual Studio, muss ich an dieser Stelle erwähnen, dass auch wenn ich ursprünglich aus der Ecke Borland C++ und später Microsoft C++ komme (wirklich sehr lang her, kennt übrigens noch einer Borland C++?), Visual Studio fordert schon etwas Einarbeitung.

Zum Start hatte ich mir vorgenommen, meine einfache Anwendung „Zeichenobjekte in Excel komfortabel ein- und ausblenden“ zu portieren. Optimal wäre es, wenn die Anwendung sowohl in Excel 2003 als auch in Excel 2007 laufen würde. Und später, so hatte ich überlegt, wäre es nicht schlecht, wenn dieselbe Anwendung auch in Word oder PowerPoint laufen würde.

Ok, fangen wir mal an; zunächst erstelle ich ein neues Projekt in Visual Studio. Wie bereits im vorherigen Beitrag beschrieben, wähle ich „ADX COM Add-in“ aus der Rubrik „Andere Projekttypen – Erweitert“.

Add-In Express

Read more