Chemische Formeln mit VBA formatieren

Die Sprache VBA ist vielseitig einsetzbar (hat jemand wirklich eine andere Aussage auf einem VBA-Blog erwartet?) und erlaubt neben der klassischen Automatisierung von wiederkehrenden Abläufen, auch die Umsetzung von regelbasierten Formatierungen.

Continue reading „Chemische Formeln mit VBA formatieren“

Singleton mit VBA

Die Programmiersprache VBA wird zwar von Microsoft selbst als objektorientiert bezeichnet, unterstützt aber bei weitem nicht alle Aspekte der Objektorientierung. Das Singleton Pattern ist eines der wenigen Pattern, die sich in VBA umsetzen lassen. Dieser Beitrag soll den Praxiseinsatz des Singletonpatterns in meinem VBA-Projekt etwas näher erläutern.

Continue reading „Singleton mit VBA“

Camt 052 Dateien zur Zuordnung von Zahlungen einlesen

In meinem ersten Beitrag über das Thema Rechnungsstellung habe ich über Herausforderungen bei der Zuordnung von Zahlungen zu offenen Rechnungen berichtet. Der Lösungsansatz, den ich bereits umgesetzt habe, war die Verwendung von QR Codes auf Rechnungen, um bequemere Überweisungen für meine Kunden und fehlerfreie Zuordnungen für meine Buchhaltung zu ermöglichen. Nun möchte ich einen Blick hinter die Kulissen auf ein weiteres Modul gewähren, welches Kontoauszugsdateien im Camt 052-Format entgegennimmt, aus den darin enthaltenen Kontoumsätzen relevante Zahlungseingänge ermittelt und diese ins Rechnungsprogramm für den Zahlungsabgleich importiert.

Continue reading „Camt 052 Dateien zur Zuordnung von Zahlungen einlesen“

Was ist schneller C# oder VBA?

In jedem Fachgebiet gibt es Fragestellungen, die von den in die Materie involvierten Personen sofort richtig beantwortet werden. Das Gebiet der Softwareentwicklung bildet da natürlich keine Ausnahme. Ich glaube, jedem Entwickler dürfte klar sein, dass zwischen VBA und C# (beide aus dem Hause Microsoft stammend) Welten liegen. Deswegen geht es in diesem Beitrag nicht um die Frage „Ist C# schneller als VBA?“, sondern vielmehr „Um welchen Faktor ist C# schneller als VBA?“

Continue reading „Was ist schneller C# oder VBA?“

QR Codes mit VBA und Google Chart API erstellen

Im Internet gibt es zahlreiche Webseiten, mit denen man QR-Codes erzeugen kann. Man tippt einfach die zu verschlüsselnde Zeichenkette ein und erhalt eine entsprechende Grafik mit dem QR-Code. Was ist jedoch, wenn man dies nicht per Hand, sondern maschinell erledigen möchte? Hierfür könnte die Google Chart API eine mögliche Lösung sein.

In diesem Tutorial stelle ich ein kleines, von mir entwickeltes, Programm vor und erkläre ausführlich, wie dieses funktioniert. Es ist in der Lage, Texte aus einem Array mit Hilfe der Google Chart API automatisch in QR Codes zu überführen. Mit einer kleinen Anpassung kann auch eine Exceltabelle als Quelle für die umzuwandelnden Texte angebunden werden, sodass die Textpflege noch einfacher wird.

Continue reading „QR Codes mit VBA und Google Chart API erstellen“

Richtiger Umgang mit ScreenUpdating

Viele Programme, welche mit großen Datenmengen herumhantieren und komplizierte Berechnungen anstellen, kommen oft an den Punkt, an dem deren lange Laufzeit allmählig zum Problem wird. VBA-Programme, die unter Excel laufen, sind da keine Ausnahmen. Eher die Regel – vor allem dann, wenn das Programm dauernd Inhalte in Zellen reinschreibt. Denn bei jedem solcher Schreibvorgänge gehen wertvolle Millisekunden für die Bildschirmaktualisierungen und automatische Berechnungen anderer Zellen drauf. Nebenbei erwähnt, führt dies auch zum unschönen Flackern des Bildschirms während des Programmlaufs. Stöbert man in zahlreichen Foren, begegnet man oft dem Vorschlag, die Bildschirmaktualisierung sowie automatische Zellenberechnungen vor dem Beginn der Verarbeitung auszuschalten und sie nach der Verarbeitung wieder zu aktivieren.

Wie so oft, steckt auch bei diesem wirklich wirkungsvollen Vorschlag der Teufel im Detail, welches der Gegenstand dieses Beitrags sein soll.

Continue reading „Richtiger Umgang mit ScreenUpdating“

Konsolenanwendungen mit VBA aufrufen

Fragt man Menschen mit unterschiedlichem Background (kaufmännisch vs. informationstechnisch), was sie von Konsolenanwendungen halten, so gibt es in der Regel vollkommen gegenläufige Meinungen. Auf der einen Seite kommen Aussagen wie „das ist ja doch total veraltet, ich möchte lieber eine schicke Bedienoberfläche haben“. Auf der anderen Seite lautet die Meinung „hey, die sind absolut genial, einfach bedienbar und wirklich aufs Wesentliche fokussiert.

Continue reading „Konsolenanwendungen mit VBA aufrufen“

XML-Validierung mit XSD und VBA

In einem meiner früheren Beitrage habe ich XML-basierte Schlüsselverzeichnisse vorgestellt, deren Struktur mit der Beschreibungssprache XSD festgelegt wird. Nun möchte ich daran anknüpfen und zeigen, wie einfach die Validierung einer solchen XML-Datei unter VBA realisiert werden kann.

Continue reading „XML-Validierung mit XSD und VBA“

Mehrere Rückgabewerte einer Funktion

In der Softwareentwicklung arbeite ich sehr gerne mit Funktionen, um den Quellcode in kleinere, leicht verständliche Einheiten aufzuteilen. Idealerweise sind sie so allgemein, dass sie an mehreren Stellen im Code verwendet werden können. In der Regel geben diese Funktionen einen einzelnen Wert zurück. In manchen Fällen ist jedoch erforderlich, mehrere Rückgabewerte zurückgeben zu können, vor allem dann, wenn die Daten in einem engen fachlichen Zusammenhang stehen – beispielsweise ein bestimmtes Produkt, seine abgesetzte Menge und der damit generierte Umsatz.

Dafür stehen uns in VBA (in allen anderen Programmiersprachen natürlich auch) mehrere Lösungsmöglichkeiten zur Verfügung, die ich hier kurz vorstellen möchte.

Continue reading „Mehrere Rückgabewerte einer Funktion“

Entwicklung von Klassen-AddIns(VBA)

In kleineren VBA-Projekten, die ihre komplette Geschäftslogik in einer einzelnen Datei beherbergen, gibt es wenig Gründe, Teile dieser Geschäftslogik in separate AddIns auszulagern. Dies würde nur Mehraufwand bedeuten, ohne dass der Entwickler oder der Anwender daraus einen Vorteil ziehen kann.

Continue reading „Entwicklung von Klassen-AddIns(VBA)“