{"id":55000713,"date":"2010-04-01T00:00:00","date_gmt":"2020-05-22T22:12:02","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=713"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Trojanische_Kontextmenues_am_Beispiel_Excel","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/","title":{"rendered":"Trojanische Kontextmen&uuml;s am Beispiel Excel"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/82b33ac0cd7a470ca84b0c1f5db4525e\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Die guten alten Trojaner lassen uns nicht in Ruhe &#8211; auch wenn das trojanische Pferd eigentlich gar kein trojanisches, sondern ein griechisches Pferd war: Der Begriff des Trojaners verfolgt uns sogar bis ins Computerzeitalter. Der vorliegende Beitrag besch&auml;ftigt sich auch mit diesem Thema, allerdings geht es hier um ein trojanisches Kontextmen&uuml;, mit dem Sie von Access aus Funktionen in andere Office-Anwendungen einschleusen. Dreht der Autor jetzt v&ouml;llig durch Sie werden sehen: Vielleicht schicken ja auch Sie schon bald einen Trojaner in Richtung Word, Excel oder Outlook &#8230;<\/b><\/p>\n<p>Ein praxisnahes Beispiel f&uuml;r ein trojanisches Kontextmen&uuml; liefert der Beitrag <b>Ferngesteuerter Seriendruck mit Access und Word <\/b>(<b>www.access-im-unternehmen.de\/714<\/b>). Dort geht es um eine Access-Anwendung, die Seriendruckdokumente auf Basis beliebiger Datenherk&uuml;nfte erzeugen soll. Dabei &ouml;ffnet der Benutzer von Access aus eine Word-Instanz mit einem vorhandenen oder auch neuen Dokument, um dieses mit den f&uuml;r diese Anwendung notwendigen Platzhaltern auszustatten. Der Clou dabei: Die Platzhalter, die den Feldern der zuvor in Access ausgew&auml;hlten Tabelle entsprechen, werden so im Kontextmen&uuml; von Word angeboten, dass man die Textmarke nach dem Positionieren der Einf&uuml;gemarke per Kontextmen&uuml; in das Word-Dokument einf&uuml;gen kann. Au&szlig;erdem schlie&szlig;t der Benutzer die Bearbeitung des Word-Dokuments ebenfalls mit einer Kontextmen&uuml;schaltfl&auml;che ab.<\/p>\n<p>Nat&uuml;rlich ist diese Vorgehensweise nicht ganz trivial (sonst w&uuml;rde es ja jeder machen): Die VBA-Funktion, die f&uuml;r das Einf&uuml;gen der Textmarke im Word-Dokument sorgt, steckt n&auml;mlich in einem Modul der Access-Anwendung. Und auch wenn es noch relativ einfach ist, ein Kontextmen&uuml; der Word-Anwendung mit eigenen Befehlen zu best&uuml;cken oder diese anderweitig zu manipulieren, so reicht es l&auml;ngst nicht aus, einfach die VBA-Funktion des Access-Moduls f&uuml;r die <b>OnAction<\/b>-Eigenschaft des Kontextmen&uuml;eintrags anzugeben: Word wiegelt diesen Versuch mit einer humorlosen Meldung ab, dass die Funktion nicht gefunen werden k&ouml;nne.<\/p>\n<p><b>Beispiel: Excel<\/b><\/p>\n<p>Ein Beispiel f&uuml;r den Einsatz eines trojanischen Kontextmen&uuml;s in Word finden Sie in der Beispieldatenbank zum oben genannten Beitrag, daher besch&auml;ftigen wir uns hier mit einer praktischen Excel-Anwendung. Dabei m&ouml;chten wir von Access aus eine Excel-Instanz mit einem zuvor ausgew&auml;hlten Dokument &ouml;ffnen, einen Bereich dieses Dokuments referenzieren und dann irgendetwas mit diesem Bereich veranstalten &#8211; was, bleibt Ihrer Fantasie &uuml;berlassen.<\/p>\n<p><b>Excel-Instanz holen<\/b><\/p>\n<p>Bevor wir von Access aus irgendwelche Anpassungen am Men&uuml; von Excel durchf&uuml;hren k&ouml;nnen, m&uuml;ssen wir zun&auml;chst eine Excel-Instanz erstellen und einen Verweis darauf in einer Objekt-Variablen speichern. F&uuml;r mehr Komfort bei der Entwicklung setzen wir zun&auml;chst einen Verweis auf die Bibliothek <b>Microsoft Excel x.0 Object Library<\/b> (VBA-Editor, Men&uuml; <b>Extras|Verweise<\/b>). Falls Sie eine andere Anwendung, wie etwa Word oder Outlook, infiltrieren m&ouml;chten, binden Sie nat&uuml;rlich den entsprechenden Verweis ein. Und da wir exzessiv mit dem <b>CommandBars<\/b>-Objektmodell arbeiten werden, kann nat&uuml;rlich auch ein Verweis auf die Bibliothek <b>Microsoft Office x.0 Object Library <\/b>nicht schaden.<\/p>\n<p>Den Verweis auf die Excel-Instanz und auf das darin erzeugte Excel-Dokument speichern Sie in entsprechenden Objektvariablen, die Sie in einem neuen Standardmodul namens <b>mdlExcel <\/b>anlegen:<\/p>\n<pre>Public objExcel As Excel.Application\r\nPublic objWorkbook As Excel.Workbook<\/pre>\n<p>Wenn Sie sp&auml;ter auf <b>Late Binding <\/b>umstellen und die Verweise aus dem Projekt entfernen m&ouml;chten, &auml;ndern Sie diese beiden Zeilen wie folgt:<\/p>\n<pre>Dim objExcel As Object\r\nDim objWorkbook As Object<\/pre>\n<p>Nachdem <b>objExcel <\/b>und <b>objWorkbook <\/b>global verf&uuml;gbar sind, k&ouml;nnen wir uns f&uuml;r das &Ouml;ffnen und Schlie&szlig;en dieser Elemente eigene Prozeduren g&ouml;nnen. Die erste erzeugt zun&auml;chst eine Excel-Instanz und erstellt ein neues Workbook:<\/p>\n<pre>Public Sub ExcelStarten()\r\n    Set objExcel = CreateObject(&quot;Excel.Application&quot;)\r\n    Set objWorkbook = objExcel.Workbooks.Add()\r\nEnd Sub<\/pre>\n<p>Die n&auml;chste Routine schlie&szlig;t das Dokument, ohne es zu speichern, und beendet auch die Excel-Instanz:<\/p>\n<pre>Public Sub ExcelBeenden()\r\n    objWorkbook.Close False\r\n    Set objWorkbook = Nothing\r\n    objExcel.Quit\r\n    Set objExcel = Nothing\r\nEnd Sub<\/pre>\n<p>Wenn Sie beide hintereinander aufrufen, geschieht gar nichts Sichtbares &#8211; was auch logisch ist: Wir haben die Excel-Instanz nicht sichtbar gemacht. Das geschieht mit dieser Anweisung, die Sie nach Ausf&uuml;hren von <b>ExcelStarten <\/b>im Direktfenster ausprobieren k&ouml;nnen:<\/p>\n<pre>objExcel.Visible = True<\/pre>\n<p>Vorerst wollen wir Excel aber gar nicht sichtbar machen. Erstmal statten wir das entsprechende Kontextmen&uuml; von Excel mit einem neuen Eintrag aus, der die aktuelle Auswahl zur weiteren Bearbeitung an Access &uuml;bergibt. In der Prozedur, die diese Aufgabe erledigt, brauchen wir zwei Objektvariablen. Die erste referenziert die Kontextmen&uuml;leiste, der wir einen Eintrag hinzuf&uuml;gen m&ouml;chten, die zweite den neuen Eintrag selbst:<\/p>\n<pre>Dim cbr As Commandbar\r\nDim cbc As CommandBarControl<\/pre>\n<p>Bevor wir das neue Steuerelement hinzuf&uuml;gen k&ouml;nnen, m&uuml;ssen wir herausfinden, welches Kontextmen&uuml; &uuml;berhaupt erscheint, wenn wir mit der rechten Maustaste auf einen Bereich im Excel-Worksheet klicken. Dies bekommen wir leicht heraus. Dazu &ouml;ffnen wir Excel und ein Workbook mit der Prozedur <b>ExcelStarten <\/b>und rufen die folgende Routine auf:<\/p>\n<pre>Public Sub KontextmenueIdentifizieren()\r\n    Dim cbr As Commandbar\r\n    Dim cbc As CommandBarControl\r\n    For Each cbr In objExcel.CommandBars\r\n        If cbr.Type = msoBarTypePopup Then\r\n            Set cbc = cbr.Controls.Add(1, , , , True)\r\n            cbc.Caption = &quot;Name des Kontextmen&uuml;s: &quot; &amp; cbr.Name\r\n        End If\r\n    Next cbr\r\nEnd Sub<\/pre>\n<p>Damit f&uuml;gen Sie jedem Kontextmen&uuml; der gesamten Anwendung einen Eintrag hinzu, der sich am Beispiel des Kontextmen&uuml;s einer Zelle wie in Bild 1 auswirkt und einen Eintrag mit der Angabe des Namens der Kontextmen&uuml;leiste hinzuf&uuml;gt.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2010_02\/TrojanischeMenues-web-images\/pic001.png\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Ermitteln des Namens eines Kontextmen&uuml;s<\/span><\/b><\/p>\n<p>Das Kontextmen&uuml; <b>Cell<\/b> wird auch aufgerufen, wenn Sie einen Bereich aus mehreren Zellen markieren, wir brauchen uns also offensichtlich nur um dieses eine Kontextmen&uuml; zu k&uuml;mmern. Gehen wir also in die Vollen und legen unseren Kontextmen&uuml;eintrag an:<\/p>\n<pre>Public Sub TrojanermenueAnlegen()\r\n    Dim cbr As Commandbar\r\n    Dim cbc As CommandBarButton\r\n    Set cbr = objExcel.CommandBars(&quot;Cell&quot;)\r\n    Set cbc = cbr.Controls.Add(1, , , , True)\r\n    With cbc\r\n        .Caption = &quot;Auswahl nach Access &uuml;bernehmen&quot;\r\n        .BeginGroup = True\r\n        .OnAction = &quot;=AuswahlUebernehmen()&quot;\r\n    End With\r\nEnd Sub<\/pre>\n<p><!--30percent--><\/p>\n<p>Und damit beim Anklicken des Eintrags auch etwas geschieht, f&uuml;gen wir noch schnell eine entsprechende Funktion ins Modul ein, die einfach nur ein Meldungsfenster anzeigen soll:<\/p>\n<pre>Public Function AuswahlUebernehmen()\r\n    MsgBox &quot;Auswahl &uuml;bernehmen&quot;\r\nEnd Function<\/pre>\n<p>Nach dem Aufrufen der Prozedur <b>TrojanerAnlegen <\/b>und einem Klick auf den neuen Eintrag geschieht allerdings Unerwartetes: Es gibt eine Fehlermeldung, weil die Funktion nicht vorhanden sei. Das konnte ja auch nicht klappen: Woher soll die in Excel angelegte Men&uuml;schaltfl&auml;che auch wissen, dass sich ihre <b>OnAction<\/b>-Funktion in einer externen Access-Datenbank befindet<\/p>\n<p><b>CommandBar per Klasse<\/b><\/p>\n<p>Aber wer sich schon einmal mit COM-Add-Ins besch&auml;ftigt hat, der wei&szlig; auch, dass es M&ouml;glichkeiten gibt, anderen Anwendungen Men&uuml;eintr&auml;ge hinzuzuf&uuml;gen, deren Aktion von der hinzuf&uuml;genden Anwendung ausgef&uuml;hrt wird.<\/p>\n<p>Der Schl&uuml;ssel ist vermutlich, dass wir das Steuerelement als Objekt mit dem Vermerk <b>WithEvents <\/b>deklarieren m&uuml;ssen und eine eigene Ereignisprozedur f&uuml;r den Klick auf das Steuerelement anlegen. Die <b>WithEvents<\/b>-Klausel kann allerdings nur innerhalb von Klassenmodulen verwendet werden, sodass wir uns f&uuml;r ein erstes Experiment einfach ein kleines Formular zum Aufruf von Excel, zum Einbau des Trojanermen&uuml;eintrags und zum Unterbringen des Ereignisses bauen. Dieses sieht im Entwurf wie in Bild 2 aus und enth&auml;lt lediglich eine Schaltfl&auml;che namens <b>cmdExceltrojaner<\/b>. Statt des im bisherigen Beispielcode verwendeten <b>CommandBarControl<\/b>-Objekts verwenden wir ein Objekt des Typs <b>CommandBarButton <\/b>&#8211; dieses kann gegeben&uuml;ber dem <b>CommandBarControl<\/b>-Objekt das Ereignis <b>Click <\/b>ausl&ouml;sen.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2010_02\/TrojanischeMenues-web-images\/pic002.png\" alt=\"pic002.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Diese Schaltfl&auml;che schickt den Trojaner nach Excel.<\/span><\/b><\/p>\n<p>Die Deklaration der Excel-Objekte und die beiden Prozeduren <b>ExcelStarten<\/b> und <b>ExcelBeenden <\/b>k&ouml;nnen im Standardmodul <b>mdlExcel <\/b>verbleiben, den Rest gestalten wir im Klassenmodul des Formulars <b>frmExceltrojaner <\/b>neu. Als Erstes bringen wir dort die <b>CommandBar<\/b>-Variable sowie die mit dem Schl&uuml;sselwort <b>WithEvents <\/b>versehene Variable f&uuml;r die Men&uuml;schaltfl&auml;che unter:<\/p>\n<pre>Dim cbr As Commandbar\r\nDim WithEvents cbb As CommandBarButton<\/pre>\n<p>Ein Klick auf die Schaltfl&auml;che <b>cmdExceltrojaner <\/b>l&ouml;st die folgende Ereignisprozedur aus, die zun&auml;chst &uuml;ber die Prozedur <b>ExcelStarten <\/b>die Excel-Instanz samt neuem Dokument erzeugt und dann die Routine <b>TrojanermenueAnlegen <\/b>aufruft:<\/p>\n<pre>Private Sub cmdExceltrojaner_Click()\r\n    ExcelStarten\r\n    TrojanermenueAnlegen\r\nEnd Sub<\/pre>\n<p>Diese wiederum erzeugt einen Verweis auf das Kontextmen&uuml; namens <b>Cell <\/b>und legt ein neues Steuerelement darin an. Dann stellt sie die Beschriftung des Steuerelements ein, sorgt daf&uuml;r, dass dieses in einer neuen Gruppe erscheint und &uuml;bergibt einen Wert f&uuml;r die <b>Tag<\/b>-Eigenschaft:<\/p>\n<pre>Private Sub TrojanermenueAnlegen()\r\n    Set cbr = objExcel.CommandBars(&quot;Cell&quot;)\r\n    Set cbb = cbr.Controls.Add(1, , , , True)\r\n    With cbb\r\n        .Caption = &quot;Auswahl nach Access &uuml;bernehmen&quot;\r\n        .BeginGroup = True\r\n        .Tag = &quot;AuswahlUebernehmen&quot;\r\n    End With\r\nEnd Sub<\/pre>\n<p>Die <b>Tag<\/b>-Eigenschaft m&uuml;ssen Sie in diesem Fall nicht unbedingt setzen, aber unter Word wird keine Ereignisprozedur f&uuml;r ein <b>CommandBarButton<\/b>-Objekt oder andere Men&uuml;steuerelemente ausgel&ouml;st, wenn dies von einer anderen Anwendung angelegt und die <b>Tag<\/b>-Eigenschaft nicht gesetzt wurde &#8211; mehr dazu unter <b>http:\/\/support.microsoft.com\/kb\/826931\/en-us<\/b>.<\/p>\n<p>Schauen wir uns schlie&szlig;lich noch das Ereignis an, das Sie mit den beiden Kombinationsfeldern im Kopf des Codefensters des Klassenmoduls des Formulars anlegen k&ouml;nnen (siehe Bild 3):<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2010_02\/TrojanischeMenues-web-images\/pic003.png\" alt=\"pic003.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: Mit diesen beiden Kombinationsfeldern legen Sie Ereignisprozeduren f&uuml;r Objekte an, die mit dem Schl&uuml;sselwort WithEvents deklariert wurden.<\/span><\/b><\/p>\n<pre>Private Sub cbb_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)\r\n    Dim strAddress As String\r\n    strAddress = objExcel.Selection.Address\r\n    ExcelBeenden\r\n    MsgBox &quot;Ausgew&auml;hlter Bereich: &quot; &amp; strAddress\r\nEnd Sub<\/pre>\n<p>Diese Prozedur ermittelt die Adresse des aktuell ausgew&auml;hlten Bereichs im Excel-Tabellenblatt zum Zeitpunkt der Bet&auml;tigung des neuen Men&uuml;eintrags. Dann beendet sie Excel mithilfe der Prozedur <b>ExcelBeenden<\/b> und gibt schlie&szlig;lich die Adresse des ausgew&auml;hlten Bereichs in einem Meldungsfenster aus.<\/p>\n<p><b>Flexiblere Gestaltung<\/b><\/p>\n<p>Dies ist die einfachste Variante f&uuml;r eine neue Schaltfl&auml;che im Kontextmen&uuml; einer anderen Anwendung. In der L&ouml;sung zum oben erw&auml;hnten Beitrag zum Seriendruck in Word sieht dies anders aus: Hier sollen gleich mehrere neue Schaltfl&auml;chen angelegt werden, und das auch noch in verschiedenen Kontextmen&uuml;s. Gleichzeitig besitzt diese Variante einen dynamischen Anteil, denn die Anzahl der anzulegenden <b>CommandBarButtons <\/b>ist variabel und h&auml;ngt von der gew&auml;hlten Datenherkunft ab.<\/p>\n<p>Die Beispieldatenbank enth&auml;lt eine Klasse, die wir hierzu im Modul des Formulars <b>frmExcelTrojaner <\/b>deklarieren und sp&auml;ter instanzieren. Die Deklaration sieht so aus:<\/p>\n<pre>Dim WithEvents objExcelCommandbar As clsExcelCommandBar<\/pre>\n<p>Um die Klasse auszuprobieren, legen wir eine zweite Schaltfl&auml;che namens <b>cmdVieleExcelTrojaner <\/b>an. Diese erh&auml;lt die folgende Prozedur f&uuml;r die Ereigniseigenschaft <b>Beim Klicken<\/b>:<\/p>\n<pre>Private Sub cmdVieleExcelTrojaner_Click()\r\n    ExcelStarten\r\n    Set cbrExcel = objExcel.CommandBars(&quot;Cell&quot;)\r\n    Set objCommandbar = New clsCommandBar\r\n    With objCommandbar\r\n        .AddCommandBarButton cbrExcel, _\r\n        &quot;Aktuelle Markierung&quot;, _\r\n        &quot;Aktuelle Markierung&quot;, True\r\n        .AddCommandBarButton cbrExcel, _\r\n        &quot;Funktion 1&quot;, &quot;Funktion 1&quot;\r\n        ''... weitere Aufrufe\r\n        .AddCommandBarButton cbrExcel, _\r\n        &quot;Beenden&quot;, &quot;Beenden&quot;, True\r\n    End With\r\nEnd Sub<\/pre>\n<p>Die Routine verwendet die Methode <b>AddCommandBarButton<\/b> des auf der Klasse <b>clsCommandbar <\/b>basierenden Objekts <b>objCommandbar<\/b>, um eine Reihe von Kontextmen&uuml;eintr&auml;gen anzulegen. Diese Methode erwartet die folgenden Parameter:<\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>cbr<\/b>: Verweis auf die Kontextmen&uuml;leiste, der ein Eintrag hinzugef&uuml;gt werden soll<\/li>\n<li class=\"aufz-hlung\"><b>strCaption<\/b>: Text, den die neue Schaltfl&auml;che anzeigen soll<\/li>\n<li class=\"aufz-hlung\"><b>strTag<\/b>: Text, der beim Anklicken des Texts zur&uuml;ckgegeben wird<\/li>\n<li class=\"aufz-hlung\"><b>bolBeginGroup<\/b>: Gibt an, ob der Eintrag eine neue Gruppe im Kontextmen&uuml; beginnen soll<\/li>\n<\/ul>\n<p>Praktischerweise brauchen Sie auch nur eine einzige Ereignisprozedur. Diese liefert mit dem Parameter <b>strTag <\/b>genau den Tag zur&uuml;ck, den Sie beim Anlegen f&uuml;r den jeweiligen Kontextmen&uuml;eintrag mit dem gleichnamigen Parameter &uuml;bergeben haben, und sieht beispielsweise so aus:<\/p>\n<pre>Private Sub objCommandBar_CommandBarButtonClicked(strTag As String)\r\n    Select Case strTag\r\n        Case &quot;Aktuelle Markierung&quot;\r\n            Debug.Print objExcel.Selection.Address\r\n        Case &quot;Beenden&quot;\r\n            ExcelBeenden\r\n        Case Else\r\n            Debug.Print &quot;Funktion ''&quot; &amp; strTag &amp; &quot;'' aufgerufen&quot;\r\n    End Select\r\nEnd Sub<\/pre>\n<p>Sie brauchen also nur den Parameter <b>strTag <\/b>in einem <b>Select Case<\/b>-Kontrukt zu &uuml;berpr&uuml;fen und entsprechende Aktionen anzusto&szlig;en.<\/p>\n<p><b>Klassen-Interna<\/b><\/p>\n<p>Die Methode <b>AddCommandBarButton <\/b>der Klasse <b>clsCommandBar <\/b>(s. Listing 1) nimmt neue Men&uuml;eintr&auml;ge und deren Parameter entgegen. Sie legt jeweils ein neues <b>CommandBarButton<\/b>-Objekt an und weist die &uuml;bergebenen Parameter zu (der neue Men&uuml;eintrag w&uuml;rde schon jetzt in der Zielanwendung erscheinen). Au&szlig;erdem legt sie ein neues Objekt des Typs <b>clsCommandBarButton <\/b>an (s. Listing 2), in dem der Verweis auf den neuen <b>CommandBarButton <\/b>gespeichert wird &#8211; und nicht nur das: Auch das Ereignis, das durch einen Klick auf den Men&uuml;eintrag ausgel&ouml;st wird, wird hier definiert.<\/p>\n<p class=\"kastentabelleheader\">Listing 1: Code der Klasse clsCommandBar<\/p>\n<pre>Dim colCommandBarButtons As Collection\r\nDim objCommandBarButton As clsCommandBarButton\r\nDim cbr As Commandbar\r\nDim WithEvents cbb As CommandBarButton\r\nPublic Event CommandBarButtonClicked(strTag As String)\r\nPrivate Sub Class_Initialize()\r\n    Set colCommandBarButtons = New Collection\r\nEnd Sub\r\nPublic Sub Click(strTag As String)\r\n    RaiseEvent CommandBarButtonClicked(strTag)\r\nEnd Sub\r\nPublic Sub AddCommandBarButton(cbr As Commandbar, _\r\n    strCaption As String, strTag As String, _\r\n    Optional bolBeginGroup As Boolean = False)\r\n    Set cbb = cbr.Controls.Add(1, , , , True)\r\n    With cbb\r\n        .Caption = strCaption\r\n        .Tag = strTag\r\n        .BeginGroup = bolBeginGroup\r\n    End With\r\n    Set objCommandBarButton = New clsCommandBarButton\r\n    With objCommandBarButton\r\n        Set .CommandBarButton = cbb\r\n        Set .Commandbar = Me\r\n    End With\r\n    colCommandBarButtons.Add objCommandBarButton\r\nEnd Sub<\/pre>\n<\/p>\n<p class=\"kastentabelleheader\">Listing 2: Code der Klasse clsCommandBarButton<\/p>\n<pre>Dim WithEvents m_cbb As CommandBarButton\r\nDim m_Commandbar As clsCommandBar\r\nPublic Property Set Commandbar(objCommandbar As clsCommandBar)\r\n    Set m_Commandbar = objCommandbar\r\nEnd Property\r\nPublic Property Set CommandBarButton(cbb As CommandBarButton)\r\n    Set m_cbb = cbb\r\nEnd Property\r\nPrivate Sub m_cbb_Click(ByVal Ctrl As Office.CommandBarButton, _\r\n    CancelDefault As Boolean)\r\n    m_Commandbar.Click m_cbb.Tag\r\nEnd Sub<\/pre>\n<p>Die Methode <b>AddCommandBarButton <\/b>&uuml;bergibt aber nicht nur das <b>CommandBarButton<\/b>-Objekt an die Klasse <b>clsCommandBarButton<\/b>, sondern auch einen Verweis auf das Objekt, zu dem sie geh&ouml;rt, also auf ein Objekt des Typs <b>clsCommandBar<\/b>. Der Grund daf&uuml;r wird gleich deutlich. Die Instanz der Klasse <b>clsCommandBarButton <\/b>landet schlie&szlig;lich in der Collection <b>colCommandBarButtons<\/b>, damit sie nicht verloren geht. Wenn der Benutzer nun auf einen der neuen Men&uuml;eintr&auml;ge klickt, geschieht Folgendes:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Das <b>Click<\/b>-Ereignis der in <b>m_cbb<\/b> referenzierten Schaltfl&auml;che wird ausgel&ouml;st.<\/li>\n<li class=\"aufz-hlung\">Diese ruft die <b>Click<\/b>-Methode des in der Objektvariablen <b>m_CommandBar <\/b>referenzierten Objekts des Typs <b>clsCommandBar <\/b>mit dem Tag des angeklickten Men&uuml;eintrags als Parameter auf.<\/li>\n<li class=\"aufz-hlung\">Diese Methode wiederum l&ouml;st das in Listing 1 definierte Ereignis <b>CommandBarButtonClicked <\/b>aus und gibt den Tag mit dessen Parameter weiter.<\/li>\n<li class=\"aufz-hlung\">Und damit landen wir wieder im Klassenmodul des Formulars, das die Kontextmen&uuml;eintr&auml;ge angelegt hat und nun in der Implementierung des Ereignisses <b>CommandBarButtonClicked <\/b>auf dieses reagieren kann.<\/li>\n<\/ul>\n<p>Ganz einfach, oder Den Verweis auf das <b>clsCommandBar<\/b>-Objekt m&uuml;ssen wir &uuml;brigens in die einzelnen Instanzen der <b>clsCommandBarButton<\/b>-Objekte hineinreichen, um deren <b>Click<\/b>-Ereignisse an das <b>clsCommandBar<\/b>-Objekt weiterzureichen. Dies gelingt nicht mit einem benutzerdefinierten Ereignis, weil die <b>clsCommandBarButton<\/b>-Objekte in einer Collection landen und ihre Ereignisse von dort nicht abgefangen werden k&ouml;nnen.<\/p>\n<p><b>Einsatz in eigenen Anwendungen<\/b><\/p>\n<p>Hierf&uuml;r brauchen Sie eigentlich nur die beiden genannten Klassen zu importieren und diese wie im Beispielformular zu instanzieren. Wichtig ist, dass Sie alle Vorg&auml;nge, die durch die Kontextmen&uuml;eintr&auml;ge ausgel&ouml;st werden, in einer <b>Select Case<\/b>-Bedingung abfangen. Beachten Sie, dass Sie auch mehrere Men&uuml;s mit Trojaner-Eintr&auml;gen ausstatten k&ouml;nnen &#8211; dies kann wichtig sein, da oft verschiedene Kontextmen&uuml;s &auml;hnlichen Bereichen der Zielanwendung zugeordnet sind. In diesem Falle sollten Sie gegebenenfalls f&uuml;r jedes Kontextmen&uuml; eine eigene Instanz von <b>clsCommandBar<\/b> erstellen, um mit unterschiedlichen Ereignisprozeduren arbeiten zu k&ouml;nnen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>TrojanischeMenues.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{53257969-DEDC-4E64-9C5C-D643D06D1E9A}\/aiu_713.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die guten alten Trojaner lassen uns nicht in Ruhe &#8211; auch wenn das trojanische Pferd eigentlich gar kein trojanisches, sondern ein griechisches Pferd war: Der Begriff des Trojaners verfolgt uns sogar bis ins Computerzeitalter. Der vorliegende Beitrag besch&auml;ftigt sich auch mit diesem Thema, allerdings geht es hier um ein trojanisches Kontextmen&uuml;, mit dem Sie von Access aus Funktionen in andere Office-Anwendungen einschleusen. Dreht der Autor jetzt v&ouml;llig durch Sie werden sehen: Vielleicht schicken ja auch Sie schon bald einen Trojaner in Richtung Word, Excel oder Outlook &#8230;<\/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":[66022010,662010,44000028,44000025],"tags":[],"class_list":["post-55000713","post","type-post","status-publish","format-standard","hentry","category-66022010","category-662010","category-Ergonomie_und_Benutzeroberflaeche","category-VBA_und_Programmiertechniken"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Trojanische Kontextmen&uuml;s am Beispiel Excel - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trojanische Kontextmen&uuml;s am Beispiel Excel\" \/>\n<meta property=\"og:description\" content=\"Die guten alten Trojaner lassen uns nicht in Ruhe - auch wenn das trojanische Pferd eigentlich gar kein trojanisches, sondern ein griechisches Pferd war: Der Begriff des Trojaners verfolgt uns sogar bis ins Computerzeitalter. Der vorliegende Beitrag besch&auml;ftigt sich auch mit diesem Thema, allerdings geht es hier um ein trojanisches Kontextmen&uuml;, mit dem Sie von Access aus Funktionen in andere Office-Anwendungen einschleusen. Dreht der Autor jetzt v&ouml;llig durch Sie werden sehen: Vielleicht schicken ja auch Sie schon bald einen Trojaner in Richtung Word, Excel oder Outlook ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T22:12:02+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/82b33ac0cd7a470ca84b0c1f5db4525e\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"13\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Trojanische Kontextmen&uuml;s am Beispiel Excel\",\"datePublished\":\"2020-05-22T22:12:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/\"},\"wordCount\":2182,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/82b33ac0cd7a470ca84b0c1f5db4525e\",\"articleSection\":[\"2\\\/2010\",\"2010\",\"Ergonomie und Benutzeroberfl\u00e4che\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/\",\"name\":\"Trojanische Kontextmen&uuml;s am Beispiel Excel - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/82b33ac0cd7a470ca84b0c1f5db4525e\",\"datePublished\":\"2020-05-22T22:12:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/82b33ac0cd7a470ca84b0c1f5db4525e\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/82b33ac0cd7a470ca84b0c1f5db4525e\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Trojanische_Kontextmenues_am_Beispiel_Excel\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trojanische Kontextmen&uuml;s am Beispiel Excel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Trojanische Kontextmen&uuml;s am Beispiel Excel - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/","og_locale":"de_DE","og_type":"article","og_title":"Trojanische Kontextmen&uuml;s am Beispiel Excel","og_description":"Die guten alten Trojaner lassen uns nicht in Ruhe - auch wenn das trojanische Pferd eigentlich gar kein trojanisches, sondern ein griechisches Pferd war: Der Begriff des Trojaners verfolgt uns sogar bis ins Computerzeitalter. Der vorliegende Beitrag besch&auml;ftigt sich auch mit diesem Thema, allerdings geht es hier um ein trojanisches Kontextmen&uuml;, mit dem Sie von Access aus Funktionen in andere Office-Anwendungen einschleusen. Dreht der Autor jetzt v&ouml;llig durch Sie werden sehen: Vielleicht schicken ja auch Sie schon bald einen Trojaner in Richtung Word, Excel oder Outlook ...","og_url":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T22:12:02+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/82b33ac0cd7a470ca84b0c1f5db4525e","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"13\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Trojanische Kontextmen&uuml;s am Beispiel Excel","datePublished":"2020-05-22T22:12:02+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/"},"wordCount":2182,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/82b33ac0cd7a470ca84b0c1f5db4525e","articleSection":["2\/2010","2010","Ergonomie und Benutzeroberfl\u00e4che","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/","url":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/","name":"Trojanische Kontextmen&uuml;s am Beispiel Excel - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/82b33ac0cd7a470ca84b0c1f5db4525e","datePublished":"2020-05-22T22:12:02+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/82b33ac0cd7a470ca84b0c1f5db4525e","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/82b33ac0cd7a470ca84b0c1f5db4525e"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Trojanische_Kontextmenues_am_Beispiel_Excel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Trojanische Kontextmen&uuml;s am Beispiel Excel"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000713"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000713\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}