Lang lebe Makro(s) – Visual Basic for Applications for Beginners

Keine Angst liebe Leserinnen und Leser dieser Blogeintrag wird kein Loblied auf den Präsidenten der „Républic Française“, sondern soll die Skriptsprache „Visual Basic for Applications“ (VBA) interessierten Excel-User näherbringen, welche sich über gängige Excel-Funktionen wie SUMMEWENNS und SVERWEIS hinauswagen wollen.

Mein erstes Makro

Microsoft Excel existiert schon seit den 1980er Jahren und ist aus der Geschäftswelt nicht mehr wegzudenken. Vom CEO bis zum Praktikanten wird das Programm verwendet, um Umsatzzahlen zu vergleichen, Graphiken zu erstellen und vieles mehr. Die Verwendung von Makros, welche mit VBA erzeugt werden können, ist weit weniger verbreitet. Dabei sind Makros für MS-Office-Nutzer über die Entwicklertools mit einigen wenigen Klicks und ohne Installation zusätzlicher Software aufrufbar. Vorab sollte aber noch kurz erklärt werden, was Makros sind und für was man diese verwenden kann. Ein Makro ist ein Stück Code, welcher einen oder mehrere Befehle ausführt. Dies kann von simplen einzeiligen Commands, wie beispielsweise das Einfügen einer Formel in einer Zelle, bis hin zu extrem vielschichtigen Aufgaben, wie das Erstellen und automatische Versenden komplexer Reports an eine vordefinierte Empfängergruppe, alles sein.

Der Vorteil von VBA in Excel und anderen MS-Office-Anwendungen ist, dass man Code automatisch generieren kann, in dem man ein Makro aufzeichnet. Drückt man so den „Record-Button“ zeichnet Excel jede Handlung des Users auf und verwandelt diesen in Code, welcher sich später reproduzieren lässt. Als Beispiel habe ich die Zelle A1 angewählt und mit dem Wert „Hallo Welt“ befüllt. Dieses Programm ist das klassische Einführungsbeispiel, welchem man beim Erlernen jeder neuen Programmiersprache begegnet.

Lernen dank YouTube und ChatGTP

Wer sich dadurch etwas mit der Syntax und einigen Commands von VBA vertraut gemacht hat, dem steht nun im Internet eine riesige Bibliothek an Literatur und Tutorials zur Verfügung. Empfehlenswert sind hierbei beispielsweise die Einführungsvideos des YouTubers André Nas, welche auch vom Autor dieses Beitrags zum Erlernen der Sprache genutzt wurden.

Wer sich hingegen direkt der Lösung eines konkreten Problems widmen möchte, ohne sich davor durch etliche Tutorials zu kämpfen, der hat mit ChatGTP und anderen auf künstlicher Intelligenz (KI) gestützten Programmen die Möglichkeit, dass eine Software das Schreiben des Codes direkt übernimmt. Hierbei ist aber Vorsicht geboten. Zwar kommentiert ChatGTP den Code, was es Anfängern einfacher macht, diesen zu verstehen. Allerdings ist ChatGTP maximal so gut, wie der Input, mit welchem man die KI füttert. Blindes Vertrauen kann dazu führen, dass man fehlerhaften Code verwendet, ohne diesen zu verstehen. Beginnern empfehle ich nach dem Motto: „weniger ist mehr“ vorzugehen. Sprich, man sollte nicht versuchen komplexen Code in einem einzelnen Befehl generieren zu lassen. Vielmehr sollte die KI als Hilfestellung für die Erstellung einzelner kleiner Codesequenzen genutzt werden. Nehmen wir exemplarisch die Aufgabe, die ersten 100 Zeilen der ersten Spalte eines Excel-Blatt mit den Werten 1 bis 100 zu indexieren. Man kann dies in Excel „händisch“ tun, was ewig dauern würde. Personen mit ein wenig Excel-Erfahrung werden wohl die Werte 1 resp. 2 in die Zelle A1 und A2 schreiben, beide Zellen anwählen und das grüne Quadrat bis zur Zelle A100 herunterziehen. Konfrontiert man ChatGTP mit diesem Problem, sieht man, dass sich dieser Task mit gerade mal vier Zeilen Code lösen lässt. Dabei lernt man zusätzlich die For-Schleife kennen. Eine der wichtigsten Kontrollstrukturen jeder Programmiersprache.

Somit kann man sich Stück für Stück dem Aufbau komplexerer Makros annähern.

Fazit

VBA unterliegt als Programmiersprache sicherlich gewissen Restriktionen, welche hier nicht stärker beleuchtet wurden, und selbstredend wird ein Excel-Sheet auch durch den Einsatz von Makros kein Ersatz für ein komplexes zusammenhängendes Datenbanksystem. Nichtsdestotrotz kann die Verwendung von Makros dabei helfen, Prozesse in einer in vielen Unternehmen noch Excel-basierten Datenwelt zu optimieren. Für Neulinge mag dies am Anfang vielleicht ein grosser Schritt sein. Dank den hier vorgestellten Lernhilfen sollte es aber für jeden mit etwas Interesse und Geduld machbar sein.

Wer nun auf den Geschmack gekommen ist, dem sei gesagt, dass man mit Excel und VBA nicht nur die Datenverarbeitung automatisieren, sondern sich auch Spiele wie „Tic Tac Toe“ oder „2048“ programmieren kann. Beide Spiele wurden vom Autor dieses Blogs innerhalb je eines Excel-Files umgesetzt und können über diesen Link heruntergeladen werden. Nach dem Download gilt es nur noch den „Inhalt zu aktivieren“. Keine Angst in diesen Makros ist keine Schadsoftware versteckt. Hat man also dank Makros bei der Datenverarbeitung Zeit eingespart, so kann man sich diese mit den beiden Minispielen etwas vertreiben. Dies fällt keinem Chef der Welt auf. Schliesslich „arbeiten“ Sie dabei ja in einem Excel-File.

 

 

Beitrag teilen

David Suter

David Suter arbeitet bei Swisslos - Interkantonale Landeslotterie und bloggt aus dem CAS Business Intelligence & Analytics.

Alle Beiträge ansehen von David Suter →

Schreibe einen Kommentar