If-Statement mit Platzhalter & Like-Operator (VBA)

Bei einer Suche - beispielsweise auf Google - kann mit Platzhaltern gearbeitet werden. Das Fragezeichen (?) ersetzt dabei ein einzelnes Zeichen, das Sternchen (*) ist ein Platzhalter/eine Wildcard für eine beliebige Zeichenfolge vor, innerhalb oder nach dem Suchbegriff. Verwendet man in VBA ein If-Statement, können ebenfalls solche Platzhalter zur Anwendung gebracht werden. Nehmen wir an, basierend auf einem User-Input im Format "Qx-JAHR" (bspw. Q2-2019) soll eine bestimmte Prozedur für eben dieses Quartal gesteuert werden. Normalerweise ist ein If-Statement oder besser gesagt ein If-Then-Else-Statement wie folgt aufgebaut:

If MeinBegriff = "Q2-2019" Then
Weiterer Code für diesen Fall

ElseIf Weitere Prüfungen
Weiterer Code

End If

Im obigen Fall wird Bei "MeinBegriff" handelt es sich um eine Variable, die vorhin in der Prozedur initialisiert wird. Sie kann das Resultat eines User-Inputs sein oder sich auf einen bestimmten Zellwert beziehen. Generell gilt jedoch: Da sich die Jahreszahl über die Dauer verändern wird, benötigen wir eine dynamische Variante mit Platzhaltern im Format "Q2-20*". Das Gleichheitszeichen (=) wird Operator genannt. Weitere Möglichkeiten sind "<>", ">" oder "<=" etc. Desweiteren gibt es den "Like"-Operator, den wir in diesem Fall verwenden.

Der Code für ein If-Statement mit "Like-Operator" lautet:

If MeinBegriff Like "Q1-20*" Then
Weiterer Code für diesen Fall

ElseIf MeinBegriff Like "Q2-20*" Then
Weiterer Code für diesen Fall

ElseIf MeinBegriff Like "Q3-20*" Then
Weiterer Code für diesen Fall

ElseIf MeinBegriff Like "Q4-20*" Then
Weiterer Code für diesen Fall

End If

Wenn der Wert der Variable "MeinBegriff" also ähnlich (like) ist, wird der entsprechende Fall ausgeübt.

Eigene Funktionen erstellen (Meter in Meilen & Celsius in Fahrenheit)

Eine Vielzahl an Funktionen und Formeln sind bereits standardmässig in Excel verfügbar. Dem Standarduser genügt dieses Angebot grundsätzlich, doch können auch da eigene Funktionen den Umgang mit Excel erleichtern. Dieser Blog zeigt auf, wie benutzerdefinierte Funktionen und Formeln angelegt werden können, die danach jederzeit verfügbar sind. Als Beispiel werden wir hier Meter in Meilen sowie Grad Celsius in Fahrenheit umwandeln.

Meter in Meilen

Die erste Funktion, die angelegt werden soll, ist die Umwandlung von Meter in Meilen (eine englische Meile beträgt 1'609.344 Meter). Öffne hierzu eine neue Arbeitsmappe und gehe in die VBA-Umgebung (Alt + F11 oder Rechtsklick auf ein Tabellenblatt → "Code anzeigen"). Auf der linken Seite befindet sich die Projekt-Übersicht - dort sind alle geöffneten Excel-Dateien zu sehen. Mittels Rechtsklick auf die neue Arbeitsmappe lässt sich ein Modul einfügen, wo die Funktion eingepflegt werden kann:

NeuesModulEinfuegen

Im angelegten Modul1 wird nun die Funktion eingetragen. Für die Umrechnung von Meter in Meilen gilt folgender Code:

Public Function MeterInMeilen(ByVal X As Double)

MeterInMeilen = X / 1609.344

End Function

Die Formel nennen wir "MeterInMeilen". Achte bei der Vergabe der Namen darauf, dass diese nicht bereits vorhanden sind. In unserer Excel-Datei kann alsdann mit der Umwandlung begonnen werden. Die Funktion findet sich unter sämtlichen anderen - gebe in Excel einfach "=M" ein und die Vorschläge erscheinen in einer Auswahlliste, dort ist auch "MeterInMeilen" aufgeführt:

EigeneFunktionenAuswahl

Um die Umwandlung der Massangaben zu veranschaulichen, habe ich eine kleine Tabelle angelegt:

MeterInMeilen

In Zelle "B3" sind 1000 Meter eingetragen, dieser Wert kann selbst gewählt werden. In Zelle "C3" kommt unsere benutzerdefinierte Funktion zum Einsatz. Füge da nun die folgende Formel ein:

=MeterInMeilen(B3)

Ein simpler Bezug auf die Zelle "B3" reicht bereits aus, um die Meterangabe in Meilen zu konvertieren. Uns interessiert zudem, wie wir die Rückkonvertierung vornehmen können. Dazu wird folgender Programmcode eingetragen, um die Funktion "MeilenInMeter" anzulegen:

Public Function MeilenInMeter(ByVal X As Double)

MeilenInMeter = X * 1609.344

End Function

Diese Zeilen können direkt unterhalb von "End Function" der ersten Funktion in Modul1 eingetragen werden. In der Excel-Beispieltabelle kann für die Meter-Rückkonvertierung die neue Formel eingegeben werden:

=MeilenInMeter(C3)

Das Resultat davon ist wiederum exakt 1'000 Meter.

Celsius in Fahrenheit

Analog der Konvertierung oben soll nun zudem Grad Celsius in Fahrenheit umgewandelt werden können. Folgender Code erfüllt diese Anforderung:

Public Function CelsiusInFahrenheit(ByVal X As Double)

CelsiusInFahrenheit= X * 9 / 5 + 32

End Function

Wiederum als Beispieltabelle in Excel wird in Spalte C die Berechnung von diversen Temperaturangaben vorgenommen.

CelsiusInFahrenheit

Die angegebenen Werte sind korrekt, man könnte zudem die Dezimalstellen einblenden (beispielsweise 22 Grad Celsius entsprechen 71.6 Grad Fahrenheit). Die angelegte Funktion kann damit ebenfalls umgehen, da der Variablentyp "Double" gewählt wurde.

Auf die Rückkonvertierung wird hier nicht eingegangen, wir lassen dies als mögliche "Übungsaufgabe" offen. Bei Fragen kann stets die Kommentar-Sektion verwendet werden.

Zuletzt ist anzumerken, dass neben komplett neuen Funktionen wie den oben gezeigten Umwandlungs-Formeln auch bestehende Standard-Formeln individuell optimiert werden könnten. Ein Beispiel ist der SVERWEIS, bei dem Benutzer je nach dem immer wieder Probleme bekunden - bei dem Verweis gibt es diverse Fehlerursachen. Mit einer eigenen Funktion (z.B. analog der INDEX-VERGLEICH-Kombination) kann der SVERWEIS benutzerfreundlicher gestaltet werden und zugleich auch Daten links von dem Suchkriterium ausgeben.

Excel mit Robotic Process Automation (RPA)

Unter Robotic Process Automation (RPA) versteht man das Ausführen von administrativen Tätigkeiten mithilfe von "virtuellen Mitarbeitern" - einem "Software-Roboter". Dabei kann mit sämtlichen Applikationen (auch Legacy-Systemen) und dem Internet interagiert werden. Die Technologie an sich haben wir hier bereits im Jahr 2017 (siehe hier) vorgestellt. In diesem Beitrag geht es nun darum, einige Interaktionsmöglichkeiten zwischen der RPA-Software von Kofax (Kapow / Kofax RPA) und Excel aufzuzeigen.

Als Einstieg werden folgende Bereiche in diesem Blog vorgestellt:

  • Excel-Datei in Kapow einbinden
  • Selektion von Zellen, Zeilen & Spalten
  • Loop durch eine Spalte und Extraktion von Werten (Hinterlegen in einer Variable)

Der vorliegende Prozess beinhaltet eine interne Artikelliste, deren Inhalt durchlaufen und extrahiert werden soll. Weiterführend könnten diese Daten verwendet werden, um beispielsweise online Preise zu vergleichen.

Excel-Datei in Kapow einbinden

In Kofax Kapow wird eine Excel-Datei direkt als Tabellenblatt angezeigt, wie man sich das in Excel selbst gewöhnt ist. Die Abbildung unten zeigt diese Ansicht:

KapowExcelWindow

Um dies zu erlangen, erstellen wir als erstes eine Variable des Typs "Excel" und wählen die Excel-Datei aus - für dieses Beispiel habe ich die Variable "artikelliste" angelegt:

VariableArtikelliste

Als nächstes geben wir dem Workflow die Aktion "Open Variable" hinzu und wählen da die angelegte "artikelliste"-Variable.

KapowActionOpenVariable

Selektion von Zellen, Zeilen und Spalten

Innerhalb des Fensters können nun beliebige Zellen und Bereiche, Spalten oder Zeilen ausgewählt werden. Ein Klick auf die Box links oben (oberhalb von Zeile 1, links von Spalte A) lässt wie in Excel selbst alle Zellen selektieren.

KapowExcelSelect

Loop durch eine Spalte & Extraktion der Werte

Das Ziel dieses Beispielprozesses besteht darin, sämtliche ISBN-13 zu extrahieren und diese weiterzuverarbeiten. Hierzu geht man mittels Rechtsklick auf die gewünschte Spalte (A), "Loop" → "Loop Rows in Selection" und wir wählen zusätzlich, dass die erste Zeile (aufgrund der Überschriften) ignoriert wird:

LoopThroughSelection

Nachdem der Loop angelegt ist, definieren wir eine zusätzliche Variable "isbn13". Der nächste Schritt besteht darin, den Text (die ISBN-13) zu extrahieren. Dazu erfolgt ein Rechtsklick auf die Zelle "A2", gefolgt von "Extract" → "Text" und die erstellte Variable "isbn13".

ExtractTextISBN13

Im Variablen-Fenster wird je nach Prozess-Schritt die entsprechende ISBN angezeigt, im Beispiel unten die allererste ISBN aus Zelle "A2":

VariableISBN13

Um diesen Punkt weiter zu illustrieren, zeige ich Dir hier eine Abbildung mit dem bisherigen Workflow (Artikelliste öffnen, Loop & Extraktion des Wertes). Zudem stellen wir den Loop auf die zweite Iteration - so wird die Zelle "A3" selektiert und dessen Wert extrahiert. Rechts unten im Variablen-Bereich ist zudem diese ISBN hinterlegt, wohingegen in der Abbildung oben noch die erste ISBN des Titels "Archipel" hinterlegt war.

ExtractTextLoopValue

Weitere Excel-Aktionen in Kapow

Abschliessend füge ich hier eine Abbildung sämtlicher Aktionen ein, die im Aktivitäten-Fenster ausgewählt werden können. Diese Liste ist jedoch nicht abschliessend, da beispielsweise mit Device Automation viele weitere Möglichkeiten im Zusammenhang mit Excel erschlossen werden können.

KapowSelectActionExcel