kleine Sammlung an VBA Modulen für MS Excel

Copy Workbook After Save (Excel VBA Event)Da ich in meiner beruflichen Tätigkeit relativ viel mit der Makro-Programmierung in MS Excel (VBA) zu tun habe, hat sich mittlerweile eine kleine Sammlung an allgemein verwendbaren VBA Module abgehäuft. Diese Module möchte ich natürlich niemanden vorenthalten, daher biete ich sie hier zum Download an.

Bei den Funktionen bzw. Modulen handelt es sich um frei Module, welche ich in den weiten des WWWs gefunden oder selbst geschrieben habe. Alle Funktion laufen unter MS Excel 2003 einwandfrei und sollten auch unter Excel 2007 & 2010 verwendbar sein.

Die Sammlung wird laufend erweitert werden. Der Link zum Download befindet sich am Ende des Artikels.

Hier eine kleine Beschreibung der enthaltenen Module bzw. Funktionen:

filedownload.bas Dieses Modul ermöglicht es eine beliebige Datei von einem Webserver (per http) herunterzuladen und sie lokal zu speichern.
Die Routine wird mit „CopyURLToFile“aufgerufen und benötigt 2 Parameter:

  1. url (String) = URL der Quelldatei
  2. filename = Name der Zieldatei (inkl. kompletten Pfad)
 IndexServiceControl.bas Diese Funktion kann den Windows Index-Dienst deaktivieren oder aktiveren. Ein aktiver Index-Dienst kann Problem beim suchen von Dateien im Filesystem verursachen.
Die Routine wird mit „IndexServiceStartStop“aufgerufen. Übergibt man dem optionalen Parameter den Wert „1“ so wird der Index-Dienst gestartet, ohne Angabe eines Parameters wird der Dienst gestoppt.
Das Modul kann leicht modifiziert werden um jeden beliebigen Dienst zu starten und zu stoppen (vorrausgesetzt der angemeldete Benutzer verfügt über die entsprechenden Berechtigungen)
 Verzeichnis Auswahl.bas Diese Funktion blendet eine Verzeichnis-Auswahl (Filesystem), unter Verwendung der shell32.dll, ein. Die Funktion gibt den vollständigen Pfad des ausgewählten Verzeichnisses als String zurück.
Aufgerufen wird die Funktion mit „getdirectory“, optional kann mit dem Parameter „msg“ der Fenster-Titel angegeben werden.
 MD5.bas Die Funktion erzeugt aus einen beliebigen String einen MD5-Hash ohne verwendung einer externen DLL.
Aufgerufen wird die Funktion mit „MD5_String“. Per Parameter wird der zu „transformierente“ String übergeben, die Funktion liefert dann den MD5-Hash als String zurück
 specialdirs.bas Das Modul stellt Funktionen zur verfügung, um den Pfad von Windows-Spezial-Verzeichnissen auszugeben (zB Ordner Eigene Dateien).
Standardmäßig ist die Funktion „getuserdir“ als public markiert, diese gibt den Pfad des Ordners „Eigene Dateien“ des angemeldeten Benutzers zurück.
Die Private Funktion „GetPath“ kann den Pfad jedes Spezial-Verzeichnisses ausgeben – genauere Informationen sind dem Quell-Code zu entnehmen
 mauswheel_in_listbox.zip Dieses ZIP-Archiv enthält VBA-Funktionen um die Mausrad-Steuerung von List-Boxen, innerhalb eines UserForms, zu aktiveren.
Die ZIP-Datei enthält ein Excel-Sheet mit Beispiel wie die entsprechenden Funktionen eingesetzt werden.
 sqlhandler.bas Diese Modul stellt eine Funktion zur verfügung, welche es ermöglicht eine geschlossene Excel-Arbeitsmappe als Datenbank zu behandeln (MS Jet-Datenbank) und dessen Tabellen mittels SQL-Befehle abzufragen. Damit die Funktion auch funktioniert muss im VBA Editor der Verweis auf DAO 3.6 gesetzt werden.Folgende Parameter erwartet die Funktion:

  1. file = Abzufragende Arbeitsmappe als String
  2. query = der SQL-Befehl für die Abfrage als String
  3. target = Zielzelle als Range
  4. noheader (Optional) = übergibt man diesen Parameter „1“, so werden in der Ergebnisstabelle keine Spaltenbezeichnungen ausgegeben

Die Funktion liefert als Rückgabe TRUE oder FALSE zurück, TRUE wenn die Abfrage korrekt durchgeführt werden konnte.

Im SQL-Befehl müssen Spalten-Bezeichungen (Felder) und Tabellen-Namen unter eckige Klammern „[]“ gesetzt werden. Tabellen-Namen sollten mit dem Doller-Zeichen abgeschlossen sein (zB.: [Tabelle1$] ).
Unterstützt werden die geläufigen SQL-Anweisungen wie zB SELECT, WHERE, ORDER BY, GROUP BY, FROM, JOIN, SUM, etc

Download: VBA Module.zip

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.