{"id":55000494,"date":"2025-12-01T00:00:00","date_gmt":"2026-02-06T16:13:34","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=494"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"VBA_Early_Binding_und_Late_Binding","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/VBA_Early_Binding_und_Late_Binding\/","title":{"rendered":"VBA: Early Binding und Late Binding"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/6701dd1a12524f3f8ae4d09a10252269\" width=\"1\" height=\"1\" alt=\"\"><b>Wenn wir Objektvariablen deklarieren und instanzieren wollen, gibt es zwei Varianten: Early Binding und Late Binding. Beide haben ihre Daseinsberechtigung. Bei der ersten k&ouml;nnen wir IntelliSense nutzen, ben&ouml;tigen allerdings einen Verweis auf die jeweilige Bibliothek. Durch das Vorhandensein des Verweises ist die Performance au&szlig;erdem ein wenig besser. Beim Late Binding deklarieren wir die Variable mit dem Typ Object und weisen diese anders zu. Hier ben&ouml;tigen wir keinen Verweis, was wiederum Vorteile mit sich bringt. Ferner k&ouml;nnen wir kein IntelliSense nutzen. In diesem Artikel zeigen wir zuerst die Unterschiede und die Vor- und Nachteile von Early Binding und Late Binding. Zudem stellen wir eine M&ouml;glichkeit vor, beide Varianten gleichzeitig zu definieren und zur Laufzeit zwischen den Methoden zu wechseln.<\/b><\/p>\n<p>In den meisten F&auml;llen kommt man beim Programmieren mit den Elementen der standardm&auml;&szlig;ig verf&uuml;gbaren Bibliotheken aus. Welche das sind, sehen wir im <b>Verweise<\/b>-Dialog des VBA-Projekts einer frisch angelegten Access-Datenbank (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_001.png\" alt=\"Standardm&auml;&szlig;ig aktivierte Verweise\" width=\"499,6267\" height=\"393,8742\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Standardm&auml;&szlig;ig aktivierte Verweise<\/span><\/b><\/p>\n<p>Wenn wir Elemente aus weiteren Bibliotheken ben&ouml;tigen, f&uuml;gen wir diese Bibliotheken am einfachsten zun&auml;chst &uuml;ber den Verweise-Dialog hinzu. Wenn wir etwa mit ADODB auf Daten zugreifen wollen, ben&ouml;tigen wir die Bibliothek <b>Microsoft ActiveX Data Objects 6.1 Library<\/b>.<\/p>\n<p>Danach k&ouml;nnen wir IntelliSense nutzen, um nach Eingabe von <b>ADODB <\/b>und dem Punkt die enthaltenen Elemente auszuw&auml;hlen (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_002.png\" alt=\"Deklaration per IntelliSense\" width=\"499,6267\" height=\"255,8836\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Deklaration per IntelliSense<\/span><\/b><\/p>\n<p>Hierbei handelt es sich um das sogenannte <b>Early Binding<\/b>.<\/p>\n<p>Wir k&ouml;nnen auch ohne einen Verweis auf die Bibliothek arbeiten. Dazu entfernen wir zun&auml;chst den Verweis. Wenn wir dann mit dem Men&uuml;eintrag <b>Debuggen|Kompilieren <\/b>das Projekt kompilieren, erhalten wir einige fehlerhafte Stellen, da die deklarierten Typen nicht mehr gefunden werden k&ouml;nnen (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_003.png\" alt=\"Fehler bei nicht auffindbaren Typen\" width=\"549,6265\" height=\"254,9727\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Fehler bei nicht auffindbaren Typen<\/span><\/b><\/p>\n<p>Diese m&uuml;ssen wir nun zun&auml;chst durch den Typ <b>Object <\/b>ersetzen:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As Object<\/span>\r\n<span style=\"color:blue;\">Dim <\/span>cnn<span style=\"color:blue;\"> As Object<\/span><\/pre>\n<p>Beim erneuten Kompilieren werden auch die Zeilen zur Initialisierung der Variablen mit <b>New <\/b>als fehlerhaft markiert.<\/p>\n<p>Diese ersetzen wir durch den Aufruf der <b>CreateObject<\/b>-Anweisung:<\/p>\n<pre><span style=\"color:blue;\">Set<\/span> rst = CreateObject(\"ADODB.Recordset\")\r\n<span style=\"color:blue;\">Set<\/span> cnn = CreateObject(\"ADODB.Connection\")<\/pre>\n<p>Damit erhalten wir das sogenannte <b>Late Binding<\/b> und der Code kann nun ebenfalls kompiliert werden.<\/p>\n<p>Der Nachteil hierbei ist, dass wir kein Intellisense mehr zum Programmieren mit diesen Elementen nutzen k&ouml;nnen.<\/p>\n<h2>Vorteil: Wir k&ouml;nnen auf nicht vorhandene Bibliotheken reagieren<\/h2>\n<p>Der Vorteil tritt erst zutage, wenn wir die Anwendung auf einem Rechner ausf&uuml;hren, auf dem die verwendete Bibliothek nicht vorhanden ist. Wenn wir eine Anwendung mit einem Verweis auf eine nicht vorhandene Bibliothek auf einem solchen Rechner &ouml;ffnen, erhalten wir eine Meldung wie die aus Bild 4. In der Folge erhalten wir weitere Meldungen, mit denen der Benutzer normalerweise nicht viel anfangen kann &#8211; er wird sich dann beim Entwickler melden und damit zus&auml;tzlichen Aufwand verursachen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_004.png\" alt=\"Meldung bei nicht vorhandener Bibliothek\" width=\"549,6265\" height=\"274,8134\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Meldung bei nicht vorhandener Bibliothek<\/span><\/b><\/p>\n<p>Wenn wir hier mit Late Binding arbeiten, erscheint erst einmal keine solche Meldung &#8211; auch beim Kompilieren\/Debuggen wird keine Fehlermeldung auftreten.<\/p>\n<p>Wir k&ouml;nnen aus einer solchen Datenbank also sogar eine <b>.accde<\/b>-Datei erstellen. <\/p>\n<p>Und es wird noch besser: Statt der nicht behandelbaren Fehlermeldung, die bei fehlerhaften Verweisen bei Early Binding auftaucht, k&ouml;nnen wir das Vorhandensein der notwendigen Bibliotheken explizit testen und den Benutzer darauf aufmerksam machen, dass diese gegebenenfalls noch installiert werden m&uuml;ssen.<\/p>\n<p>Angenommen, wir wollen eine selbst erstellte DLL in einem VBA-Projekt nutzen, zum Beispiel eine DLL namens <b>MyTestLibraryProject<\/b>, die eine Klasse namens <b>MyTestLibrary <\/b>zur Verf&uuml;gung stellt.<\/p>\n<p>Die DLL findest Du im Download zu diesem Artikel im Ordner <b>Build <\/b>unter den folgenden Namen:<\/p>\n<ul>\n<li>F&uuml;r 32-Bit: <b>MyTestLibraryProject_win32.dll<\/b><\/li>\n<li>F&uuml;r 64-Bit: <b>MyTestLibraryProject_win64.dll<\/b><\/li>\n<\/ul>\n<p>Um diese zu registrieren, verwendest Du in der Eingabeaufforderung von Windows (als Administrator gestartet) den folgenden Befehl:<\/p>\n<pre>regsvr32.exe \"C:\\...\\Build\\MyTestLibraryProject_win32.dll\"<\/pre>\n<p>In der Eingabeaufforderung sieht das wie in Bild 6 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_006.png\" alt=\"Registrieren der Beispiel-DLL\" width=\"649,627\" height=\"286,0666\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Registrieren der Beispiel-DLL<\/span><\/b><\/p>\n<p>Diese binden wir &uuml;ber den <b>Verweise<\/b>-Dialog wie in Bild 5 in das VBA-Projekt einer Datenbank ein. Danach k&ouml;nnen wir die einzige Funktion dieser DLL wie folgt nutzen, wobei wir hier zun&auml;chst Early Binding nutzen:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_005.png\" alt=\"Einbinden einer Beispiel-DLL\" width=\"499,6267\" height=\"393,8742\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Einbinden einer Beispiel-DLL<\/span><\/b><\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>TestLibrary()\r\n     <span style=\"color:blue;\">Dim <\/span>obj<span style=\"color:blue;\"> As <\/span>MyTestLibraryProject.MyTestLibrary\r\n     <span style=\"color:blue;\">Set<\/span> obj = <span style=\"color:blue;\">New<\/span> MyTestLibraryProject.MyTestLibrary\r\n     <span style=\"color:blue;\">Debug.Print<\/span> obj.MultiplyByTen(10)\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Der Aufruf der Prozedur liefert das gew&uuml;nschte Ergebnis, in diesem Fall <b>100<\/b>.<\/p>\n<h2>Registrierung der DLL aufheben<\/h2>\n<p>Nun schauen wir uns den Fall an, dass die DLL nicht wie erwartet registriert ist. Dazu heben wir die Registrierung wieder auf, indem wir <b>RegSvr32.exe <\/b>mit dem Parameter <b>\/u <\/b>ausf&uuml;hren :<\/p>\n<pre>regsvr32.exe \"C:\\...\\Build\\MyTestLibraryProject_win32.dll\" \/u<\/pre>\n<p>Wenn wir die Anwendung danach erneut starten, erhalten wir zun&auml;chst einmal keinen Fehler. Auch der Verweis ist noch im <b>Verweise<\/b>-Dialog vorhanden. Kompilieren wir das VBA-Projekt, wird auch kein Fehler gemeldet. Erst, wenn wir die Prozedur ausf&uuml;hren, erhalten wir den Fehler aus Bild 7.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_007.png\" alt=\"Fehler beim Versuch, die DLL zu nutzen\" width=\"499,6267\" height=\"382,1648\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Fehler beim Versuch, die DLL zu nutzen<\/span><\/b><\/p>\n<p>Das liegt daran, dass allein das Aufheben der Registrierung nicht ausreicht &#8211; die DLL kann nach wie vor unter dem Pfad gefunden werden, der im <b>Verweise<\/b>-Dialog hinterlegt ist.<\/p>\n<p>Wir schlie&szlig;en die Anwendung also erneut und benennen die DLL um, sodass diese nicht mehr gefunden werden kann. Das ist der Zustand, den wir beispielsweise erhalten, wenn wir die Datenbank auf einen Rechner kopieren, wo die DLL noch gar nicht installiert ist.<\/p>\n<p>Starten wir die Anwendung erneut, erhalten wir schlie&szlig;lich den Fehler aus Bild 8.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_008.png\" alt=\"Die DLL kann nicht gefunden werden.\" width=\"424,6267\" height=\"291,7104\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Die DLL kann nicht gefunden werden.<\/span><\/b><\/p>\n<p>Beim Versuch, das VBA-Projekt zu kompilieren, erscheint nun auch der erwartete Kompilierfehler (siehe Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_009.png\" alt=\"Kompilierfehler\" width=\"474,6267\" height=\"355,97\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Kompilierfehler<\/span><\/b><\/p>\n<h2>Umwandeln in Late Binding<\/h2>\n<p>Nun wandeln wir den Code im VBA-Projekt nach Late Binding um:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>obj<span style=\"color:blue;\"> As Object<\/span>\r\n<span style=\"color:blue;\">Set<\/span> obj = _\r\n     CreateObject(\"MyTestLibraryProject.MyTestLibrary\")<\/pre>\n<p>Damit erreichen wir zun&auml;chst, dass das Projekt wieder erfolgreich kompiliert werden kann. Damit beim Schlie&szlig;en und erneuten &Ouml;ffnen der Datenbank kein Fehler mehr auftritt, m&uuml;ssen wir auch den Verweis noch aus dem <b>Verweise<\/b>-Dialog entfernen. Dieser wird dort bereits als <b>NICHT VORHANDEN <\/b>markiert (siehe Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_010.png\" alt=\"Die Bibliothek wird als NICHT VORHANDEN markiert.\" width=\"499,6267\" height=\"393,8742\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Die Bibliothek wird als NICHT VORHANDEN markiert.<\/span><\/b><\/p>\n<p>Danach k&ouml;nnen wir die Anwendung schlie&szlig;en und problemlos wieder &ouml;ffnen.<\/p>\n<p>Erst beim Versuch, die DLL per VBA aufzurufen, liefert das eine Fehlermeldung (siehe Bild 11).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_011.png\" alt=\"Weiterr Fehler beim Versuch, die DLL zu nutzen\" width=\"499,6267\" height=\"414,3046\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Weiterr Fehler beim Versuch, die DLL zu nutzen<\/span><\/b><\/p>\n<p>Und hier k&ouml;nnen wir eingreifen und dem Benutzer eine nachvollziehbare Meldung liefern. Dazu f&uuml;gen wir die Fehlerbehandlung aus Listing 1 hinzu.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>TestLibrary()\r\n     <span style=\"color:blue;\">Dim <\/span>obj<span style=\"color:blue;\"> As Object<\/span>\r\n     On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> obj = CreateObject(\"MyTestLibraryProject.MyTestLibrary\")\r\n     <span style=\"color:blue;\">If <\/span>Err.Number = 429<span style=\"color:blue;\"> Then<\/span>\r\n         <span style=\"color:blue;\">MsgBox<\/span> \"Die Bibliothek MyTestLibraryProject ist nicht installiert.\", vbOKOnly + <span style=\"color:blue;\">vbCr<\/span>itical, \"Fehlende DLL\"\r\n         <span style=\"color:blue;\">Exit Sub<\/span>\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Fehlerbehandlung f&uuml;r eine fehlende DLL<\/span><\/b><\/p>\n<p>Hier schalten wir die eingebaute Fehlerbehandlung mit <b>On Error Resume Next <\/b>aus und pr&uuml;fen nach dem Aufruf, ob die Fehlernummer <b>429 <\/b>lautet. In diesem Fall geben wir eine entsprechende Fehlermeldung aus und brechen die Prozedur ab.<\/p>\n<h2>DLL direkt beim Start pr&uuml;fen<\/h2>\n<p>Nun wollen wir dem Benutzer den Fehler nicht erst pr&auml;sentieren, wenn er die entsprechende Prozedur aufruft, sondern direkt beim Start der Anwendung eine Pr&uuml;fung durchf&uuml;hren.<\/p>\n<p>Dazu f&uuml;gen wir ein <b>AutoExec<\/b>-Makro hinzu, das eine Funktion namens <b>DLLTest <\/b>aufruft (siehe Bild 12).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_06\/pic_494_012.png\" alt=\"AutoExec-Makro zum Testen der DLL\" width=\"599,6265\" height=\"187,6454\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: AutoExec-Makro zum Testen der DLL<\/span><\/b><\/p>\n<p>Diese erh&auml;lt den folgenden Code:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>DLLTest()\r\n     <span style=\"color:blue;\">Dim <\/span>obj<span style=\"color:blue;\"> As Object<\/span>\r\n     On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> obj = CreateObject( _\r\n         \"MyTestLibraryProject.MyTestLibrary\")\r\n     <span style=\"color:blue;\">If <\/span>Err.Number = 429<span style=\"color:blue;\"> Then<\/span>\r\n         <span style=\"color:blue;\">MsgBox<\/span> \"Die Bibliothek MyTestLibraryProject \" _\r\n             & \"ist nicht installiert.\", _\r\n             vbOKOnly + <span style=\"color:blue;\">vbCr<\/span>itical, \"Fehlende DLL\"\r\n         DoCmd.Quit\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Damit k&ouml;nnen wir direkt beim Start der Anwendung eine Fehlermeldung ausgeben, wenn die ben&ouml;tigte DLL nicht verf&uuml;gbar ist.<\/p>\n<h2>Vorgehensweise bei der Programmierung<\/h2>\n<p>Wenn wir dennoch Early Binding und IntelliSense nutzen wollen, k&ouml;nnen wir schrittweise vorgehen. Dabei w&uuml;rden wir zun&auml;chst einen Verweis zur entsprechenden Bibliothek hinzuf&uuml;gen und mit <b>Early Binding <\/b>programmieren. Bevor wir die Anwendung weitergeben, k&ouml;nnen wir den Verweis wieder entfernen und die entsprechenden Anweisungen auf Late Binding umstellen.<\/p>\n<p>Dabei sollten wir die Early Binding-Anweisungen jedoch nur auskommentieren und nicht entfernen, um jederzeit zu Programmierzwecken und zur Nutzung von IntelliSense auf die Early Binding-Variante zur&uuml;ckwechseln zu k&ouml;nnen.<\/p>\n<p>Wir k&ouml;nnen dies sogar mit der sogenannten Bedingten Kompilierung so einstellen, dass je nach Modus entweder Early oder Late Binding genutzt werden kann. Wie das im Detail funktioniert, zeigen wir in einem weiteren Artikel namens <b>VBA: Bedingte Kompilierung nutzen <\/b>(<b>www.vbentwickler.de\/6<\/b>).<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Early Binding und Late Binding haben beide Vor- und Nachteile, die wir in diesem Artikel vorgestellt haben.<\/p>\n<p>Da das Umstellen von Early Binding zu Late Binding und zur&uuml;ck je nach der Anzahl der Deklarations- und Initialisierungsanweisungen aufwendig sein kann, stellen wir in einem weiteren Beitrag namens <b>Per VBA von Early Binding zu Late Binding <\/b>(<b>www.vbentwickler.de\/5<\/b>) eine L&ouml;sung vor, mit der wir mit wenigen Mausklicks automatisch alle Early Binding-Anweisungen zu Late Binding umstellen k&ouml;nnen.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>VBAEarlyBindingUndLateBinding.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/890429DD-9C83-47E0-92AC-EE6B6E7B71F1\/vbe_494.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn wir Objektvariablen deklarieren und instanzieren wollen, gibt es zwei Varianten: Early Binding und Late Binding. Beide haben ihre Daseinsberechtigung. Bei der ersten k&ouml;nnen wir IntelliSense nutzen, ben&ouml;tigen allerdings einen Verweis auf die jeweilige Bibliothek. Durch das Vorhandensein des Verweises ist die Performance au&szlig;erdem ein wenig besser. Beim Late Binding deklarieren wir die Variable mit dem Typ Object und weisen diese anders zu. Hier ben&ouml;tigen wir keinen Verweis, was wiederum Vorteile mit sich bringt. Ferner k&ouml;nnen wir kein IntelliSense nutzen. In diesem Artikel zeigen wir zuerst die Unterschiede und die Vor- und Nachteile von Early Binding und Late Binding. Zudem stellen wir eine M&ouml;glichkeit vor, beide Varianten gleichzeitig zu definieren und zur Laufzeit zwischen den Methoden zu wechseln.<\/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":[662025,66062025,44000021,44000025],"tags":[],"yst_prominent_words":[],"class_list":["post-55000494","post","type-post","status-publish","format-standard","hentry","category-662025","category-66062025","category-Entity_Framework","category-VBAProgrammierung"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000494","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=55000494"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000494\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000494"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000494"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}