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

All posts tagged Windows API

Vor kurzem fragte mich Andreas Entenmann, ob ich mein Tool zum Auslesen von Verzeichnissen so erweitern könnte, dass nicht nur die Namen der Unterverzeichnisse ausgelesen und in eine Excel Tabelle geschrieben werden, sondern auch die kompletten Pfade pro gefundenem Unterordner. Und wie es oft so ist, kurz nach Andreas‘ Anfrage erhielt ich weitere Anfragen von Usern aus dem Forum „Office-Lösung“, ob ich nicht das Tool auch um eine Funktion zum Auslesen der Dateien erweitern könnte.

Gewünscht, gesagt und getan. Ich habe nun einerseits das Tool um die entsprechenden Funktionen erweitert und ein Add-In generiert, welches eine Benutzeroberfläche mit einstellbaren Optionen zur Verfügung stellt und am Ende des Artikels heruntergeladen werden kann.

Maninweb.de Add-Ins

Die relativ einfache Variante des Tools hatte ich im Januar 2009 in meinem Blog auf meiner Hauptseite publiziert, den Artikel finden Sie hier „Verzeichnisstruktur mit VBA auflisten“.

Der Code im Add-In ist zwar kennwortgeschützt, kann aber von jedem eingesehen und darf auch in eigenen Projekten verwendet werden, solange die Hinweise im Kopfbereich der Module erhalten bleiben. Davon unberührt bleiben jegliche Urheber-, Verwertungs- und Publizierungsrechte, die alle bei mir verbleiben. Das Kennwort zum VBA Projekt lautet „excelticker“. Der enthaltene Code füllt nicht nur eine Excel Tabelle mit den Ordner- und Dateinamen sondern enthält auch Funktionen zum Füllen eines TreeView Steuerelementes mit der Ordnerstruktur und einer ListView mit den in einem Ordner enthaltenen Dateinamen. Am Rande erwähnt, ein paar Hilfsfunktionen ermöglichen den Aufruf des Windows Verzeichnisauswahldialoges und das Entfernen der Titelleiste in einer UserForm. Nachfolgend eine kurze Beschreibung der wesentlichen Funktionen der Module und des Add-Ins.

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

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