{"id":55000431,"date":"2024-06-01T00:00:00","date_gmt":"2024-08-07T10:15:40","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=431"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"To_DoAufgabe_mit_Power_Automate_und_VBA_anlegen","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/To_DoAufgabe_mit_Power_Automate_und_VBA_anlegen\/","title":{"rendered":"To Do-Aufgabe mit Power Automate und VBA anlegen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/828bc112132848fca641eb2cc19b104c\" width=\"1\" height=\"1\" alt=\"\"><b>Power Automate ist ein cloudbasierter Service von Microsoft, der es Benutzern erm&ouml;glicht, Automatisierungen und Workflows zwischen verschiedenen Apps und Diensten zu erstellen. Fr&uuml;her bekannt als Microsoft Flow, bietet Power Automate eine benutzerfreundliche Oberfl&auml;che zum Erstellen von Automatisierungen ohne die Notwendigkeit von tiefgreifenden Programmierkenntnissen. Mit ein paar Tricks k&ouml;nnen wir Power Automate auch per VBA steuern. Ein guter Grund, trotz der anfallenden monatlichen Geb&uuml;hren einmal einen Blick auf diese Technologie zu werfen. In diesem Artikel schauen wir uns an, welche Voraussetzungen es f&uuml;r Power Automate gibt und wie wir einen unverbindlichen Test damit durchf&uuml;hren k&ouml;nnen. Au&szlig;erdem nutzen wir diesen Test f&uuml;r ein praxisnahes Beispiel: Wir wollen der Anwendung Microsoft To Do einen Termin hinzuf&uuml;gen, indem wir per VBA einen Power Automate-Flow triggern, der dann eine Aktion zum Anlegen der Aufgabe ausl&ouml;st.<\/b><\/p>\n<p>Was ist Power Automate &uuml;berhaupt? Hier sind einige Schl&uuml;sselmerkmale und Funktionen von Power Automate:<\/p>\n<ul>\n<li><b>Integrationen<\/b>: Es erm&ouml;glicht die nahtlose Integration mit einer Vielzahl von Microsoft- und Drittanbieteranwendungen wie Office 365, SharePoint, Dynamics 365, Google Drive, Salesforce, Twitter und so weiter.<\/li>\n<li>Workflow-Erstellung: Nutzer k&ouml;nnen Workflows visuell durch Drag-and-Drop von Aktionen erstellen. Diese Aktionen k&ouml;nnen verschiedene Aufgaben wie das Senden einer E-Mail, das Erstellen eines Eintrags in einer Datenbank, das Verschieben von Dateien et cetera ausf&uuml;hren.<\/li>\n<li><b>Automatisierung<\/b>: Routineaufgaben k&ouml;nnen automatisiert werden, um die Produktivit&auml;t zu steigern und menschliche Fehler zu reduzieren. Zum Beispiel k&ouml;nnen Genehmigungsworkflows erstellt werden, die auf bestimmte Bedingungen reagieren.<\/li>\n<li><b>Benutzerfreundlichkeit<\/b>: Die Plattform ist so konzipiert, dass sie von Benutzern mit unterschiedlichem technischem Hintergrund genutzt werden kann, von Anf&auml;ngern bis zu fortgeschrittenen Benutzern.<\/li>\n<li><b>Ausl&ouml;ser und Bedingungen<\/b>: Automatisierungen k&ouml;nnen basierend auf Ereignissen (wie beispielsweise das Eingehen einer E-Mail, das Hinzuf&uuml;gen einer Datei in OneDrive) oder bestimmten Bedingungen gestartet werden.<\/li>\n<li><b>Berichterstellung und &Uuml;berwachung<\/b>: Es bietet Einblicke in die Ausf&uuml;hrung von Workflows und erm&ouml;glicht die &Uuml;berwachung der Leistung sowie die Fehlerbehandlung.<\/li>\n<li><b>Sicherheit und Compliance<\/b>: Power Automate unterst&uuml;tzt Sicherheitsma&szlig;nahmen wie Datenverschl&uuml;sselung und Compliance-Standards wie GDPR.<\/li>\n<\/ul>\n<p>Insgesamt ist Power Automate ein leistungsstarkes Werkzeug zur Automatisierung von Gesch&auml;ftsprozessen, das Unternehmen hilft, effizienter zu arbeiten und die Interaktion zwischen verschiedenen Apps und Diensten zu optimieren. Auf den n&auml;chsten Seiten schauen wir uns an, wie wir es nutzen k&ouml;nnen.<\/p>\n<h2>Beispielanwendung: Microsoft To Do<\/h2>\n<p>Ehrlich gesagt sind wir auf Power Automate schon l&auml;nger aufmerksam geworden, aber am einfachsten f&auml;llt das Schreiben von Artikeln &uuml;ber bestimmte Themen doch, wenn man die vorgestellte Technik auch einmal praktisch einsetzen kann.<\/p>\n<p>In diesem Fall haben wir nach einer M&ouml;glichkeit gesucht, um Microsoft To Do von au&szlig;en mit Daten zu f&uuml;ttern, um beispielsweise Aufgaben aus einer Datenbankanwendung heraus schreiben zu k&ouml;nnen.<\/p>\n<p>Wir haben uns nat&uuml;rlich auch die Rest API angesehen, die Microsoft To Do liefert. Allerdings w&auml;re der Aufwand, die Authentifizierung zu programmieren, zu hoch gewesen. Auf der Suche nach einer Alternative sind wir &uuml;ber Power Automate gesto&szlig;en. Wir wollen hier eine bestimmte URL mit passenden Informationen aufrufen, um Eintr&auml;ge zu Microsoft To Do hinzuzuf&uuml;gen. Power Automate bietet eine solche Schnittstelle, sodass wir hier dieses Werkzeug nutzen wollen.<\/p>\n<h2>Gesch&auml;ftliches Microsoftkonto erforderlich<\/h2>\n<p>Wir ben&ouml;tigen ein Gesch&auml;ftskonto bei Microsoft, um mit Power Automate zu arbeiten. Mit einem privaten Konto funktionierte dies zum Zeitpunkt der Erstellung dieses Artikels nicht. Wir starten unter folgender URL:<\/p>\n<pre>https:\/\/www.microsoft.com\/de-de\/power-platform\/products\/power-automate?market=de<\/pre>\n<p>Hier klicken wir auf <b>Kostenlos testen<\/b> (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_001.png\" alt=\"Einstieg in PowerAutomate\" width=\"700\" height=\"419,8862\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Einstieg in PowerAutomate<\/span><\/b><\/p>\n<p>Danach landen wir auf einer Seite, auf der wir unsere Gesch&auml;fts-, Schul- oder Uni-E-Mail-Adresse eingeben k&ouml;nnen, mit der wir ein Konto bei Microsoft haben (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_002.png\" alt=\"Eingeben der E-Mail-Adresse\" width=\"499,6267\" height=\"582,18\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Eingeben der E-Mail-Adresse<\/span><\/b><\/p>\n<p>Im n&auml;chsten Schritt geben wir an, dass wir die Adresse von unserer Organisation erhalten haben.<\/p>\n<p>Einen Schritt weiter fragt Microsoft unsere Telefonnummer ab, um per SMS oder Anruf einen Pr&uuml;fcode zu &uuml;bermitteln. Diesen geben wir nach Erhalt ein und gelangen zu einer weiteren Seite, auf der wir nun die Daten zur Erstellung unseres Kontos hinterlegen.<\/p>\n<p>Nach dem erneuten Eintragen eines Pr&uuml;fcodes, der diesmal per E-Mail versendet wird, klicken wir auf <b>Weiter<\/b>.<\/p>\n<p>Nach der Registrierung k&ouml;nnen wir zu der zuerst aufgerufenen Seite zur&uuml;ckkehren und diese aktualisieren. Wir landen dann auf der Seite aus Bild 3.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_003.png\" alt=\"Zur&uuml;ck auf der PowerAutomate-Plattform\" width=\"700\" height=\"393,5595\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Zur&uuml;ck auf der PowerAutomate-Plattform<\/span><\/b><\/p>\n<p>Hier klicken wir nun auf die Schaltfl&auml;che <b>Erstellen<\/b>.<\/p>\n<p>Hier sehen wir nun unter anderem die M&ouml;glichkeit, Power Automate f&uuml;r Desktop herunterzuladen und zu installieren. Wir wollen jedoch zun&auml;chst mit der Webversion arbeiten und schauen uns daher die verf&uuml;gbaren M&ouml;glichkeiten an (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_006.png\" alt=\"Erstellen eines neuen Flows\" width=\"700\" height=\"445,5695\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Erstellen eines neuen Flows<\/span><\/b><\/p>\n<p>Auf den ersten Blick ist man erst einmal &uuml;berw&auml;ltigt und wei&szlig; nicht, wo man anfangen soll. Die f&uuml;nf hier vorgestellten Elemente dienen dazu sind allgemeine Vorlagen.<\/p>\n<p>Weiter unten finden wir einige konkrete Vorlagen. Diese sind &auml;hnlich aufgebaut wie bei Tools wie Zapier oder Make: Es gibt immer mindestens zwei beteiligte Anwendungen, von denen die eine den Trigger stellt und die andere liefert das Ziel f&uuml;r die nun durchzuf&uuml;hrende Aktion. Hier kannst Du Dir einmal einen &Uuml;berblick &uuml;ber die grunds&auml;tzlichen M&ouml;glichkeiten verschaffen.<\/p>\n<p>Weiter unten findest Du die M&ouml;glichkeit, einen Connector zum Beginnen auszuw&auml;hlen. Das bedeutet, dass Du die Anwendung w&auml;hlst, die den Flow ausl&ouml;sen soll.<\/p>\n<p>Hier finden wir nach einem Klick auf <b>Alle Connectors <\/b>viele Eintr&auml;ge, zum Beispiel auch Office 365 Outlook, SharePoint, Microsoft Teams, Outlook.com, SQL Server, Power BI, One Note (Business), Excel Online, Trello und auch Microsoft To Do. Wir k&ouml;nnen aber auch externe Anwendungen wie X, Google Drive, Slack, YouTube und viele mehr adressieren.<\/p>\n<p>Wir starten f&uuml;r unseren Anwendungsfall jedoch mit der Vorlage <b>Sofortiger Cloud-Flow<\/b>.<\/p>\n<p>Im nun erscheinenden Fenster w&auml;hlen wir den Eintrag <b>Beim Empfang einer HTTP-Anforderung <\/b>aus (siehe Bild 5) und klicken auf <b>Erstellen<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_007.png\" alt=\"Hinzuf&uuml;gen eines Direktflows\" width=\"700\" height=\"445,9725\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Hinzuf&uuml;gen eines Direktflows<\/span><\/b><\/p>\n<p>Hier klicken wir nun auf <b>Manual<\/b> und f&uuml;llen das nun erscheinende Formular wie in Bild 6 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_008.png\" alt=\"Eintragen eines JSON-Schemas\" width=\"524,6265\" height=\"524,6265\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Eintragen eines JSON-Schemas<\/span><\/b><\/p>\n<p>Unter <b>Parameter <\/b>stellen wir unter <b>Wer kann den Flow ausl&ouml;sen <\/b>den Wert <b>Jeder <\/b>ein. Das ist wichtig, weil wir sonst einen Fehler 401 erhalten. Darunter f&uuml;gen wir das folgende vorl&auml;ufige JSON-Schema ein, das wir sp&auml;ter noch anpassen werden:<\/p>\n<pre>{\r\n     \"type\": \"object\",\r\n     \"properties\": {\r\n         \"title\": {\r\n             \"type\": \"string\"\r\n         },\r\n         \"dueDate\": {\r\n             \"type\": \"string\"\r\n         },\r\n         \"importance\": {\r\n             \"type\": \"string\"\r\n         }\r\n     }\r\n}<\/pre>\n<p>Dieses enth&auml;lt die Vorgabe f&uuml;r die zu &uuml;bergebenden Daten.<\/p>\n<p>Damit kehren wir zur &Uuml;bersicht zur&uuml;ck und klicken auf das Plus-Zeichen.<\/p>\n<p>Es erscheint der Befehl <b>Aktion hinzuf&uuml;gen<\/b>, den wir anklicken (siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_009.png\" alt=\"Hinzuf&uuml;gen der Aktion\" width=\"424,6267\" height=\"155,9854\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Hinzuf&uuml;gen der Aktion<\/span><\/b><\/p>\n<p>Klicken wir diesen an, erscheint der Dialog <b>Eine Aktion hinzuf&uuml;gen<\/b>. Hier geben wir als Suchbegriff nicht etwa <b>To Do <\/b>oder <b>To-Do <\/b>ein, sondern <b>Aufgabe<\/b>. Dies liefert die gew&uuml;nschten Aktionen, wie Bild 8 zeigt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_010.png\" alt=\"Ausw&auml;hlen der Aktion\" width=\"549,6265\" height=\"419,3108\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Ausw&auml;hlen der Aktion<\/span><\/b><\/p>\n<p>Dies erweitert unseren Flows um den Eintrag <b>Aufgabe hinzuf&uuml;gen<\/b>. Links k&ouml;nnen wir nun eine Verbindung zu unserem To Do-Konto herstellen (siehe Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_011.png\" alt=\"Herstellen einer Verbindung zu To Do\" width=\"700\" height=\"321,5703\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Herstellen einer Verbindung zu To Do<\/span><\/b><\/p>\n<p>Nun erscheint gegebenenfalls eine Warnmeldung, dass der Browser ein Popupfenster blockiert hat. Dieses m&uuml;ssen wir jedoch zulassen.<\/p>\n<p>Um dies zu erledigen, klicken wir zum Beispiel in Microsoft Edge auf das Symbol aus Bild 10 und lassen die entsprechenden Popups zu.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_012.png\" alt=\"Freigeben der Popups\" width=\"549,6265\" height=\"252,2318\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Freigeben der Popups<\/span><\/b><\/p>\n<p>Danach klicken wir erneut auf Anmelden. Hier treten nun keine Probleme mehr auf und wir k&ouml;nnen uns im nun erscheinenden Popup mit dem Konto anmelden, unter dem wir Microsoft To Do Aufgaben hinzuf&uuml;gen wollen (siehe Bild 11).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_013.png\" alt=\"Anmelden unter dem To Do-Konto\" width=\"424,6267\" height=\"304,0327\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Anmelden unter dem To Do-Konto<\/span><\/b><\/p>\n<p>Anschlie&szlig;end erscheint ein Dialog, mit dem wir die Daten zum Erstellen einer neuen Ausgabe eintragen k&ouml;nnen (siehe Bild 12).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_014.png\" alt=\"Zuweisen der Parameter zur Aufgabe\" width=\"700\" height=\"607,978\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Zuweisen der Parameter zur Aufgabe<\/span><\/b><\/p>\n<p>Hier finden wir alle Eigenschaften, die wir einer Aufgabe zuweisen k&ouml;nnen:<\/p>\n<ul>\n<li><b>To-Do-Liste<\/b>: Hier k&ouml;nnen wir die Liste ausw&auml;hlen, der die Aufgabe hinzugef&uuml;gt werden soll.<\/li>\n<li><b>Titel<\/b>: Erwartet den Titel. Wir k&ouml;nnen hier einen der mit dem JSON-Dokument definierten Werte ausw&auml;hlen, in diesem Fall <b>title<\/b>.<\/li>\n<li><b>F&auml;lligkeitsdatum<\/b>: Hier k&ouml;nnen wir ebenfalls einen Eintrag aus dem JSON-Dokument angeben, wie im Screenshot zu sehen.<\/li>\n<li><b>Datum und Uhrzeit f&uuml;r Erinnerung<\/b>: Legt Details f&uuml;r die Erinnerung fest.<\/li>\n<li><b>Relevanz<\/b>: Gibt die Relevanz an.<\/li>\n<li><b>Status<\/b>: Gibt den Status an.<\/li>\n<li><b>Textk&ouml;rper-Inhalt<\/b>: Nimmt den Inhalt der Aufgabe entgegen.<\/li>\n<\/ul>\n<p>Bei den Text-Eigenschaften wird gleich nach dem Aktivieren rechts eine doppelte Schaltfl&auml;che eingeblendet (siehe Bild 13).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_015.png\" alt=\"Anzeigen der Tools zum Zuweisen von Werten oder Funktionen\" width=\"474,6267\" height=\"59,53505\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Anzeigen der Tools zum Zuweisen von Werten oder Funktionen<\/span><\/b><\/p>\n<p>Der obere Befehl zeigt die Liste der &uuml;ber die JSON-Vorlage verf&uuml;gbaren Elemente an, der untere erlaubt das Einf&uuml;gen von Funktionen und dynamischen Inhalten. Diese ben&ouml;tigen wir jetzt allerdings noch nicht.<\/p>\n<p>Wir wollen erst einmal eine To-Do-Liste ausw&auml;hlen und Daten f&uuml;r Titel, F&auml;lligkeitsdatum und Relevanz angeben.<\/p>\n<h2>Eigenschaften der neuen Aufgabe als JSON-Dokument<\/h2>\n<p>Wenn wir nun zum Bereich <b>Codeansicht<\/b> wechseln, finden wir das JSON-Dokument aus Bild 14 vor. Hier sehen wir, dass es auch f&uuml;r den Ordner einen bestimmten Wert gibt, den wir auslesen und f&uuml;r sp&auml;tere Aufrufe nutzen wollen, wenn wir auch den Ordner beim Anlegen einer Aufgabe definieren wollen (<b>folderId<\/b>).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_016.png\" alt=\"Der resultierende JSON-Code zum Anlegen der Aufgabe\" width=\"499,6267\" height=\"333,3687\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Der resultierende JSON-Code zum Anlegen der Aufgabe<\/span><\/b><\/p>\n<p>Wollen wir den Vorgang nun speichern, erhalten wir eine Meldung mit einer Vorgangswarnung. Diese besagt, dass wir f&uuml;r das Ausf&uuml;hren dieses Flows eine Premium-Lizenz besitzen m&uuml;ssen. Wir starten hier die 90-t&auml;gige Testversion.<\/p>\n<p>Klicken wir nun auf Flowpr&uuml;fung, erhalten wir die Meldung, dass keine Fehler gefunden wurden. Also k&ouml;nnen wir uns nun darum k&uuml;mmern, wie wir den Flow aufrufen.<\/p>\n<p>Nun steht einem ersten Test nichts mehr im Wege. Also klicken wir auf Test. Dies bewirkt allerdings nichts, denn wir m&uuml;ssen die Startaktion selbst ausf&uuml;hren &#8211; also den Aufruf der HTTP-Adresse.<\/p>\n<p>Dazu ben&ouml;tigen wir erst einmal die Adresse. Diese finden wir nun im Bereich des Schritts <b>manual<\/b> (siehe Bild 15). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_017.png\" alt=\"Ermitteln der HTTP-URL\" width=\"499,6267\" height=\"282,8656\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: Ermitteln der HTTP-URL<\/span><\/b><\/p>\n<h2>VBA-Code zum Anlegen einer Aufgabe in To Do<\/h2>\n<p>Damit ben&ouml;tigen wir nun nur noch eine Prozedur, mit der wir die HTTP-URL aufrufen k&ouml;nnen. <\/p>\n<p>Bevor wir diese anlegen, f&uuml;gen wir dem VBA-Projekt noch einen Verweis auf die Bibliothek <b>Microsoft XML, v6.0 <\/b>hinzu (siehe Bild 16).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_018.png\" alt=\"Verweis auf die XML-Bibliothek\" width=\"499,6267\" height=\"393,8742\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 16: Verweis auf die XML-Bibliothek<\/span><\/b><\/p>\n<p>Danach k&ouml;nnen wir die Prozedur aus Listing 1 ausprobieren.<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>AddToDoTask()\r\n     <span style=\"color:blue;\">Dim <\/span>objXMLHTTP<span style=\"color:blue;\"> As <\/span>MSXML2.XMLHTTP60\r\n     <span style=\"color:blue;\">Dim <\/span>strURL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strJSON<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> objXMLHTTP = <span style=\"color:blue;\">New<\/span> MSXML2.XMLHTTP60\r\n     strURL = \"https:\/\/prod2-20.germanywestcentral.logic.azure.com:443\/workflows\/...\"\r\n     strJSON = \"{\"\"title\"\":\"\"Neue Aufgabe\"\",\"\"dueDate\"\":\"\"2024-07-15T00:00:00Z\"\",\"\"importance\"\":\"\"normal\"\"}\"\r\n     <span style=\"color:blue;\">With<\/span> objXMLHTTP\r\n         .Open \"POST\", strURL, <span style=\"color:blue;\">False<\/span>\r\n         .setRequestHeader \"Content-Type\", \"application\/json\"\r\n         .send strJSON\r\n     End <span style=\"color:blue;\">With<\/span>\r\n     Select Case objXMLHTTP.Status\r\n         <span style=\"color:blue;\">Case <\/span>200, 202\r\n             <span style=\"color:blue;\">MsgBox<\/span> \"Aufgabe erfolgreich hinzugef&uuml;gt!\"\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">MsgBox<\/span> \"Fehler: \" & objXMLHTTP.Status & \" - \" & objXMLHTTP.statusText\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> objXMLHTTP = Nothing\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Aufruf zum Anlegen einer neuen Aufgabe in Microsoft To Do<\/span><\/b><\/p>\n<p>Die Prozedur deklariert ein <b>XMLHTTP60<\/b>-Objekt sowie einige <b>String<\/b>-Variablen. Nach dem Initialisieren von <b>objXMLHTTP <\/b>weisen wir der Variablen <b>strURL <\/b>die oben gewonnene URL hinzu.<\/p>\n<p>Au&szlig;erdem schreiben wir eine JSON-Datei auf Basis der Vorlage, die wir weiter oben deklariert haben, in die Variable <b>strJSON<\/b>. Hier ersetzen wir allerdings die Platzhalter durch die Werte, die wir der Aufgabe hinzuf&uuml;gen wollen.<\/p>\n<p>Wir rufen dann die <b>Open<\/b>-Methode des <b>XMLHTTP<\/b>-Objekts auf und &uuml;bergeben dieser die Methode <b>POST<\/b>, die URL aus <b>strURL <\/b>und den Wert <b>False <\/b>f&uuml;r einen asynchronen Aufruf. Wir stellen den <b>RequestHeader <\/b>so ein, dass der Inhalt als JSON definiert ist.<\/p>\n<p>Schlie&szlig;lich senden wir den Inhalt der JSON-Datei mit der <b>Send<\/b>-Methode.<\/p>\n<p>Danach m&uuml;ssen wir nur noch das Ergebnis auswerten. In diesem Fall sprechen die <b>Status<\/b>-Werte <b>200 <\/b>oder <b>202 <\/b>f&uuml;r ein erfolgreiches &Uuml;bersenden der Aufgabe, was eine entsprechende Meldung ausl&ouml;st.<\/p>\n<p>In allen anderen F&auml;llen werden der Status und die Fehlermeldung ausgegeben. Wie wir in unserer Beispielliste sehen, hat das &Uuml;bertragen schlie&szlig;lich funktioniert (siehe Bild 17).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_03\/pic_431_019.png\" alt=\"Per VBA und Power Automate hinzuf&uuml;gte Aufgaben\" width=\"424,6267\" height=\"379,9292\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 17: Per VBA und Power Automate hinzuf&uuml;gte Aufgaben<\/span><\/b><\/p>\n<p>Damit haben wir an einem ersten Beispiel gezeigt, wie ein spezieller Fall von Power Automation funktioniert &#8211; n&auml;mlich der, bei dem wir einen HTTP-Aufruf als Trigger nutzen.<\/p>\n<p>Fassen wir noch einmal zusammen, was wir in diesem Artikel alles erledigt haben:<\/p>\n<ul>\n<li>Erst einmal haben wir uns entschieden, von der direkten Programm der Rest API von Microsoft To Do abzusehen, weil die Authentifizierung mit VBA zu kompliziert ist.<\/li>\n<li>Dann haben wir unserem Gesch&auml;ftskonto bei Microsoft ein Power Automate-Konto hinzugef&uuml;gt und zun&auml;chst einmal den kostenlosen Test gew&auml;hlt.<\/li>\n<li>Dann mussten wir entscheiden, welche Art von Flow wir anlegen wollen. Wir haben den Fall <b>Beim Empfang einer HTTP-Anforderung <\/b>gew&auml;hlt. Diesen k&ouml;nnen wir per VBA ansto&szlig;en.<\/li>\n<li>F&uuml;r diesen haben wir zun&auml;chst ein Template f&uuml;r ein JSON-Dokument hinterlegt, das vorgibt, wie eine Anfrage aussehen kann, die wir sp&auml;ter per VBA als Trigger an diesen Flow schicken. Dieses legt fest, dass wir <b>titel<\/b>, <b>dueDate <\/b>und <b>importance <\/b>&uuml;bergeben k&ouml;nnen.<\/li>\n<li>Dann haben wir die Aktion hinzugef&uuml;gt, die ausgef&uuml;hrt werden soll, wenn der Trigger ausgel&ouml;st wurde. Hier haben wir die Aktion <b>Aufgabe hinzuf&uuml;gen <\/b>gew&auml;hlt.<\/li>\n<li>Um die Aktion nutzen zu k&ouml;nnen, m&uuml;ssen wir angeben, im Kontext wessen Accounts die Aktion ausgef&uuml;hrt werden soll &#8211; hier melden wir uns als der Benutzer an, dessen To Do-Aufgaben wir bearbeiten wollen.<\/li>\n<li>Danach haben wir den Parametern dieser Aktion die Werte aus der JSON-Vorlage zugewiesen. Hier haben wir festgestellt, dass diese l&auml;ngst noch nicht alle verf&uuml;gbaren Werte enth&auml;lt.<\/li>\n<li>Anschlie&szlig;end haben wir den neuen Flow gepr&uuml;ft und gespeichert. Danach konnten wir diesem die URL entnehmen, die wir nutzen m&uuml;ssen, um diesen per HTTP-Anfrage aufzurufen.<\/li>\n<li>Schlie&szlig;lich folgt der Schritt, in dem wir die VBA-Prozedur schreiben, die den HTTP-Aufruf durchf&uuml;hrt. Diese stellt das JSON-Dokument zusammen und schickt es an die weiter oben ermittelte URL.<\/li>\n<li>Dadurch wird der Flow getriggert und schlie&szlig;lich die Aufgabe angelegt.<\/li>\n<\/ul>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Damit haben wir einen ersten Flow angelegt, mit dem wir &uuml;ber VBA einen HTTP-Trigger ausl&ouml;sen k&ouml;nnen, der dann eine Aufgabe in To Do anlegt.<\/p>\n<p>In einem weiteren Artikel namens <b>To Do mit VBA und Power Automate steuern <\/b>(<b>www.vbentwickler.de\/432<\/b>) schauen wir uns an, wie wir diese Technik nutzen k&ouml;nnen, um To Do Aufgaben vollst&auml;ndig zu verwalten &#8211; zum Beispiel, um Aufgaben abzurufen, zu aktualisieren, hinzuzuf&uuml;gen, zu l&ouml;schen oder auch um Listen zu erstellen, zu aktualisieren, abzurufen oder zu l&ouml;schen.<\/p>\n<p>Sprich: Wir programmieren ein Rundum-Sorglos-Paket f&uuml;r den Zugriff auf unsere To Do-Listen und Aufgaben.<\/p>\n<p>Dabei gehen wir auch im Detail darauf ein, wie wir das JSON-Dokument und den Aufruf anpassen m&uuml;ssen, um die verschiedenen Aufgaben durchzuf&uuml;hren.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>ToDoAufgabeMitPowerAutomateUndVBAAnlegen.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/1722BF43-18AD-46DC-88A8-10C71AF9D828\/vbe_431.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Power Automate ist ein cloudbasierter Service von Microsoft, der es Benutzern erm&ouml;glicht, Automatisierungen und Workflows zwischen verschiedenen Apps und Diensten zu erstellen. Fr&uuml;her bekannt als Microsoft Flow, bietet Power Automate eine benutzerfreundliche Oberfl&auml;che zum Erstellen von Automatisierungen ohne die Notwendigkeit von tiefgreifenden Programmierkenntnissen. Mit ein paar Tricks k&ouml;nnen wir Power Automate auch per VBA steuern. Ein guter Grund, trotz der anfallenden monatlichen Geb&uuml;hren einmal einen Blick auf diese Technologie zu werfen. In diesem Artikel schauen wir uns an, welche Voraussetzungen es f&uuml;r Power Automate gibt und wie wir einen unverbindlichen Test damit durchf&uuml;hren k&ouml;nnen. Au&szlig;erdem nutzen wir diesen Test f&uuml;r ein praxisnahes Beispiel: Wir wollen der Anwendung Microsoft To Do einen Termin hinzuf&uuml;gen, indem wir per VBA einen Power Automate-Flow triggern, der dann eine Aktion zum Anlegen der Aufgabe ausl&ouml;st.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662024,66032024,44000012,44000022],"tags":[],"yst_prominent_words":[],"class_list":["post-55000431","post","type-post","status-publish","format-standard","hentry","category-662024","category-66032024","category-Interaktiv","category-Von_Access_zu_NET"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000431"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000431\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000431"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}