UiPath Excel AddIn - Einführung und Installation

Das Excel AddIn von UiPath erlaubt es, umfassende Anwendungsfälle aus einer beliebigen Excel-Datei zu starten. Somit können Daten in der aktuellen Datei angereichert oder auch in andere Zielsysteme weitergereicht werden. In diesem Blog zeige ich Dir, wie Du das AddIn installierst und im Weiteren, wie Du einen Prozess dafür bauen könntest. Voraussetzung für die Verwendung des Add-In ist, dass UiPath Assistant (Version 2023.4.2 oder höher) auf dem Gerät installiert ist. Das würde für das Ausführen von Prozessen reichen. Für die Entwicklung von Prozessen benötigst Du "UiPath Studio".

Installationsanleitung

Du könntest das Add-In direkt aus dem Microsoft Store via diesem Link abrufen: https://appsource.microsoft.com/en-us/product/office/WA200005457?flightCodes=UiPathAssistantExcel

Öffne alternativ eine neue Excel-Mappe und gehe unter dem Menüpunkt "Einfügen" auf "Add-Ins abrufen":

ExcelAddIn_Installer_Store

Daraufhin kannst Du nach dem Add-In "WA200005457" suchen und den "UiPath Assistant for Excel" hinzufügen:

ExcelAddIn_Installer_AddIn

Der UiPath Assistant für Excel wird daraufhin verfügbar sein, in meinem Fall noch "ohne Excel Automationen (Prozesse)":

ExcelAddIn_Assistant_empty

Falls Du an der Manifest-Datei interessiert wärst, finde sämtliche Informationen unter diesem Kapitel in der offiziellen UiPath Dokumentation: https://docs.uipath.com/robot/standalone/2023.4/user-guide/excel-add-in#using-the-manifest-file

Entwickeln eines Prozesses in UiPath Studio

Du könntest simple Prozesse und Funktionalitäten von Grund auf bauen. Es gibt jedoch unter den "Templates" (Vorlagen) den folgenden Inhalt, mit welchem die spezifischen Excel-Cases einfacher gebaut werden können. Suche einfach nach "Excel" und Du wirst "UiPath Assistant for Excel Process" finden.

ExcelAddIn_UiPath_Template

Selbstverständlich ist dies lediglich ein "Template", das womöglich Exception-Handling oder Vorgaben Deiner Organisation nicht berücksichtigt, aber für den Umgang mit einer geöffneten Excel-Datei (für den UiPath Assistant) sehr geeignet ist. Die Vorlage beinhaltet einen Subworkflow "Parse Excel Selection", damit die Benutzerauswahl von Zelle(n) interpretiert werden kann. In der Haupt-Sequenz (Main) ist der Umgang mit dem aktuellen Excel-Tabellenblatt vorbereitet. Füge die gewünschten Interaktionen ein, die auf Basis des Excels vorgenommen werden sollen. Das können auch Interaktionen mit dem Web, lokalen Applikationen (Legacy-Systemen) oder APIs sein, um weitreichende Anwendungsfälle zu verarbeiten. In der Vorlage finden sich zudem zwei dynamische Parameter, die diese Vorhaben ermöglichen:

  • in_FilePath (String) - bezieht sich auf den Dateipfad, von welchem das Add-In den Prozess startet.
  • in_Selection (String) - bezieht sich auf die Zelle(n), welche beim Start des Prozesses ausgewählt sind. Bestimmte Funktionalitäten im Prozess können also auf die Benutzer-Selektion im Spezifischen angewandt werden. Zum Beispiel: "Suche mir diese spezifischen Fremdwährungskurse" oder "Frage die selektierte(n) Kundennummer(n) im CRM ab und reichere sie mit bestimmten Daten an".

Nachdem der Prozess erarbeitet wurde, sollte dieser via UiPath Orchestrator veröffentlicht werden. Zunächst würdest Du den Prozess noch nicht im Excel Add-In sehen. Damit ein Prozess im AddIn ersichtlich wird, muss der veröffentlichte Process in UiPath Orchestrator mit dem Tag "excelAddin" versehen werden. Du findest die Einstellung in den Process-Settings auf Orchestrator:

ExcelAddIn_UiPath_ProcessTags

Somit habe ich einen Beispiel-Prozess, der mir für die gewünschten Währungs-Paare die Umrechnungskurse und ein Beispiel davon erarbeiten würde. Ich kann den Prozess jederzeit aus Excel starten und habe einen virtuellen Helfer (Assistant), welcher mich bei der täglichen Excel-Arbeit tatkräftig unterstützen kann.

ExcelAddIn_Assistant_ExchangeRate

Excel-Wissen & VBA vertiefen mit ChatGPT (OpenAI)

ChatGPT von OpenAI hat in wenigen Tagen und Wochen für Furore gesorgt und die Massen begeistert sowie spannende & kontroverse Diskussionen entfacht. Die Anwendungsfälle, wo künstliche Intelligenz (Artificial Intelligence) eingesetzt werden kann, wurden vielen Personen bewusster und greifbarer - und insbesondere auch zugänglicher!

Ein Twitter-Thread von Joe Speiser zeigt 8 mögliche Wege auf, wie ChatGPT eingesetzt und viele Stunden an mühsamer Arbeit für unterschiedliche Tätigkeiten ersparen kann (Sprache: Englisch). Dies sind einige wichtige Aspekte, die Du jederzeit anwenden kannst.

Recherche & Fragen

Wie bislang auf Google können wir den Assistenten zur Recherche und bei Fragen & Unklarheiten konsultieren. Dies ist ein Beispiel, wie man ein Säulen- und Liniendiagramm in Excel erstellt:

"Wie erstelle ich ein kombiniertes Säulen- und Liniendiagramm in Excel?"

Um ein kombiniertes Säulen- und Liniendiagramm in Excel zu erstellen, folgen Sie diesen Schritten:

  1. Öffnen Sie die Excel-Arbeitsmappe, in der Sie das Diagramm erstellen möchten.
  2. Wählen Sie die Daten aus, die im Diagramm dargestellt werden sollen.
  3. Klicken Sie auf der Registerkarte "Einfügen" im Bereich "Diagramme" auf "Säulen-Liniendiagramm".
  4. Wählen Sie das gewünschte Diagrammformat aus dem Dropdown-Menü aus.
  5. Klicken Sie auf "OK", um das Diagramm zu erstellen.

Sie können das Diagramm anschließend noch anpassen, indem Sie auf die einzelnen Elemente des Diagramms klicken und die Formatierungsoptionen in der Symbolleiste auf der Registerkarte "Format" verwenden. Sie können auch auf die Diagrammachse klicken und die Achsenoptionen in der Symbolleiste auf der Registerkarte "Format" anpassen.

Schreiben / Kodierung von Makros (und weiteren Skripts)

Einer der markantesten Ansätze scheint die Möglichkeit, innert Sekunden ganze Prozeduren (Makros / Skripts) in unterschiedlichen Programmiersprachen verfassen zu lassen. Das nachfolgende Beispiel - etwas simples, um die Länge des Blog-Beitrags nicht zu strapazieren - zeigt, wie eine Schleife (For Each-Loop) durch 10 Einträge iteriert:

"Code a For Each Loop in Excel VBA with 10 Iterations."

Hier ist ein Beispiel für eine For Each-Schleife in Excel VBA mit 10 Iterationen:

Sub ForEachLoopExample()

'Declare variables Dim item As Variant Dim items As Variant

'Set items to be looped through items = Array("item1", "item2", "item3", "item4", "item5", "item6", "item7", "item8", "item9", "item10")

'Loop through items For Each item In items 'Execute code for each item in the loop Debug.Print item Next item

End Sub

In diesem Beispiel wird die Schleife durch ein Array von Zeichenfolgen durchlaufen, aber Sie können auch andere Arten von Objekten oder Variablen verwenden. Die Aktionen, die innerhalb der Schleife ausgeführt werden, können auch angepasst werden. Sie können zum Beispiel Werte in Zellen schreiben oder Diagramme erstellen, während die Schleife durchläuft.

Wissens-Abfragen / Lern-Hilfe

Wir können ChatGPT dazu verwenden, unser eigenes Verständnis abzufragen (quasi Prüfungsfragen zu formulieren). Das liefert weitere Bereiche, die man allenfalls (wiederum mit der Unterstützung von OpenAI?!) weiter erkunden & vertiefen kann. Es lassen sich auch Bücher und einzelne Kapitel zusammenfassen respektive darüber Fragen formulieren. Dies ist ein Beispiel zu 20 generierten Fragen zu Excel VBA:

"Ask 20 Questions in German about Excel VBA."

  1. Was ist der Unterschied zwischen Excel VBA und Excel-Makros?
  2. Wie schreibe ich eine Schleife in Excel VBA?
  3. Wie kann ich in Excel VBA eine Variablen deklarieren und ihr einen Wert zuweisen?
  4. Wie kann ich in Excel VBA eine Funktion erstellen?
  5. Wie kann ich in Excel VBA auf den Inhalt einer Zelle oder eines Bereichs zugreifen?
  6. Wie kann ich in Excel VBA ein Dialogfenster öffnen und auf Benutzereingaben reagieren?
  7. Wie kann ich in Excel VBA eine Bedingung erstellen und entsprechend handeln?
  8. Wie kann ich in Excel VBA auf andere Arbeitsmappen oder andere Anwendungen zugreifen?
  9. Wie kann ich in Excel VBA Fehler abfangen und entsprechend handeln?
  10. Wie kann ich in Excel VBA Events behandeln, z.B. das Öffnen oder Schließen einer Arbeitsmappe?
  11. Wie kann ich in Excel VBA auf die Ribbon-Menüleiste zugreifen und Befehle ausführen?
  12. Wie kann ich in Excel VBA auf andere Objekte in der Arbeitsmappe zugreifen, z.B. auf Diagramme oder Formulare?
  13. Wie kann ich in Excel VBA auf andere Benutzer im Netzwerk zugreifen und ihre Daten abfragen?
  14. Wie kann ich in Excel VBA eine Web-Anfrage senden und auf die Antwort reagieren?
  15. Wie kann ich in Excel VBA Dateien erstellen, lesen und schreiben?
  16. Wie kann ich in Excel VBA benutzerdefinierte Dialoge erstellen und anzeigen?
  17. Wie kann ich in Excel VBA benutzerdefinierte Funktionen für andere Benutzer bereitstellen?
  18. Wie kann ich in Excel VBA benutzerdefinierte Befehle und Menüpunkte erstellen?
  19. Wie kann ich in Excel VBA auf externe Datenquellen wie Datenbanken oder XML-Dateien zugreifen?
  20. Wie kann ich in Excel VBA meine VBA-Code-Module organisieren und verwalten?

Case-Statements in VBA

Je nach Komplexität Deines Makro-Vorhabens kommen diverse Konditionen zur Geltung. Populär ist die Verwendung von IF-Statements (Wenn-Dann) - oder gar "If-Then-Else" (Wenn-Dann-Sonst). In einem früheren Beitrag (If-Statement mit Platzhalter & Like-Operator (VBA)) wurde ein konkretes Beispiel mit dem weiteren Einsatz von "ElseIf" dargestellt. Sind jedoch mehrere Konditionen oder Fälle bereits im Vorfeld bekannt, kannst Du anstelle dessen eine (bessere) Alternative mit "Case-Statements" (Case = Fall) erarbeiten. In anderen Programmiersprachen wird auch von "Switch" gesprochen.

Hast Du beispielsweise 4 Quartale, in denen unterschiedliche Prozeduren zur Anwendung kommen, verwende alternativ einmal ein "Case-Statement", welches wie folgt aufgebaut ist:

Sub CaseStatement()

Dim str_AktuellesQuartal As String

str_AktuellesQuartal = "Q4"

Select Case str_AktuellesQuartal
Case "Q1"
'Code für Q1...
MsgBox ("Du befindest Dich im ersten Quartal.")

Case "Q2"
'Code für Q2...
MsgBox ("Du befindest Dich im zweiten Quartal.")

Case "Q3"
'Code für Q3...
MsgBox ("Du befindest Dich im dritten Quartal.")

Case "Q4"
'Code für Q4...
MsgBox ("Du befindest Dich im vierten Quartal.")
End Select

End Sub

Der Variableninhalt "str_AktuellesQuartal" steuert also, welcher Teil-Bereich Deines Makros ausgeführt werden soll. Falls der Inhalt auf keinen der definierten Cases zutritt, wird die Verarbeitung nach dem "Select-Statement" weitergeführt. Um diese unerwartete Eingabe-Werte aufzufangen (Ausnahme-Handling), kannst Du zudem "Case Else" einfügen und dort Deine Arbeitsschritte hinterlegen, beispielsweise "MsgBox ("Unerwarteter Eingabe-Wert verwendet!")".

Arbeiten mit numerischen Werten

Wir können anstelle von Text auch Zahlen und Zahlenbereiche angeben. Hier ist ein Beispiel mit Zahlen zwischen 1 bis 20 sowie dem "Case Else", welcher uns über unerwartete Zahlen und Eingaben informiert.

Sub CaseStatementNumeric()

Dim int_MeineZahl As Integer

int_MeineZahl = 10

Select Case int_MeineZahl
Case 1 To 2
MsgBox ("Zahl zwischen 1 und 2")

Case 3 To 9
MsgBox ("Zahl zwischen 3 und 9")

Case 10 To 20
MsgBox ("Zahl zwischen 10 und 20")

Case Else
MsgBox ("Unerwartete Zahl/Wert eingegeben")
End Select

End Sub