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

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


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


In meinem Lieblingsforum zu Microsoft Office stellte jemand die Frage, ob es möglich ist, in VBA ein Bilderkarussell zu programmieren. Hierbei soll sich eine bestimmte Anzahl von Bildern beim Anklicken einer kreisförmigen Bahn folgen. Beispielsweise würde beim Anklicken eines Bildes in der folgenden Abbildung, das Bild Nummer 1 die Position von Bild Nummer 2 einnehmen, Bild 2 wandert an die Stelle von Bild 3 usw.. Die Beispieldatei inklusive dem VBA Code können Sie am Ende des Artikels herunterladen.

Excel VBA Animator

Read more


Im Microsoft Office 2010 Answers Forum stellte jemand die Frage, wie auf eine Excel Instanz von einer weiteren zugegriffen werden könnte und aus dieser heraus, Code in der ersten Instanz ausgeführt werden könnte. Dies brachte mich auf die Idee, alle Excel Instanzen per Windows API zu ermitteln und zu versuchen, auf diese per VBA zuzugreifen. Dieser Artikel beschreibt die Vorgehensweise und stellt Teile des Codes vor, wobei Kenntnisse in der VBA Programmierung vorausgesetzt werden, so auch das Verwenden von TreeViews, ListViews und Einbinden von Windows API Funktionen. Eine Beispielanwendung kann am Ende des Artikels heruntergeladen werden und ist ungeschützt, so dass der Code eingesehen werden kann.

VBA Window Handles

Read more


In meinem Artikel „Excel VBA Application Objekte per Windows API erzeugen (Teil 1)“ hatte ich eine Möglichkeit vorgestellt, wie über Windows API Funktionen alle geöffneten Excel Instanzen ermittelt werden können und gegebenenfalls daraus VBA Application Objekte erzeugt werden können. Das funktionierte jedoch nur mit den Excel Instanzen, in denen eine Arbeitsmappe geöffnet war. Dieser Artikel stellt nun eine Lösung vor, wie in Excel Instanzen ohne geöffnete Mappe per Windows API eine neue Mappe angelegt wird und anschließend das VBA Application Objekt erzeugt wird.

VBA Window Handles

Die Idee war insofern, ein neues Dokument in der Excel Instanz anzulegen und anschließend den Scan-Vorgang für alle Fensterhandles in dieser Instanz zu wiederholen. Um ein neues Dokument in Excel anzulegen, kann die Tastenkombination „Strg + N“ verwendet werden. Am einfachsten wäre es sicherlich einfach den Tastendruck und gedrückt halten für „Strg“ und anschließend die Taste „N“ zu simulieren.

Read more


In meinem Beitrag „Die wichtigsten Änderungen in VBA für Excel 2010“ vom 5. August 2009 hatte ich bereits über einige Änderungen am VBA Objektmodell in Excel 2010 berichtet. Zudem hatte ich zum damaligen Zeitpunkt begonnen, eine VBA Anwendung zu entwickeln, die das automatisierte Parsen aller VBA Objekte, Methoden, Eigenschaften und Konstanten ermöglicht. Erst vor kurzem hatte ich die Zeit, den „Excel VBA Typlib Parser“ fertig zu stellen.

Die Anwendung ist Freeware und kann am Ende des Beitrages heruntergeladen werden. Die Ausgabetabellen sind zwar geschützt, jedoch ist das Kennwort im Quellcode zu finden, welcher ungeschützt eingesehen werden kann. Die Copyright Tabelle und die Mappe sind ebenfalls geschützt, diese Kennwörter sind nicht öffentlich zugänglich.

Die Anwendung nutzt die Bibliothek „TlbInf32.dll“ aus meinem Systemverzeichnis, welche Funktionen zur Verfügung stellt, um automatisiert Typbibliotheken zu scannen. Ganz wichtig: an dieser Stelle ist anzumerken, dass diese Bibliothek zwingend benötigt wird und auch korrekt in Windows registriert sein muss. Die Software ist ohne diese Bibliothek nicht lauffähig. Die Bibliothek ist aus rechtlichen Gründen im Download der Anwendung nicht enthalten.

Excel VBA Typelib Scanner

Read more


Im Excel Hilfe Forum bei „Office Lösung“ stellte jemand die Frage, ob es denn möglich sein, eine Grafik aus dem Internet jede Minute automatisch aktualisieren zu lassen. Der User hatte im Forum einige Beispiel-URL’s angegeben, die eine Grafik (Gif) in einem definierten Zeitintervall auf dem Server aktualisiert.

In diesem Fall wird die Grafik auf dem Server jedoch dynamisch generiert und in Form von Rohdaten ohne jeglichen HTML-Code an den Browser übertragen. So nebenbei, in PHP würde man hierzu beispielsweise die Funktion header() und readfile() einsetzen. Die PHP Funktionen ermöglichen, wenn sie in einer bestimmten Reihenfolge und durch eine Angabe diverser Parameter (wie z.B. den Inhaltstyp „Content-Type“) aufgerufen werden, das direkte Senden binärer Daten an den Browser. Eine Webabfrage in Excel kann mit solchen Daten leider nicht umgehen. Somit muss eine andere Lösung her.

Excel Dynamic Image

Read more