{"id":55001114,"date":"2018-02-01T00:00:00","date_gmt":"2021-12-07T16:58:53","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1114"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Die_MSFormsTextbox","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/","title":{"rendered":"Die MSForms-Textbox"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg09.met.vgwort.de\/na\/43caa935133a45f3bca113fa91563c8b\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Die MSForms-Bibliothek beherbergt einige Steuer-elemente, die unter Access ein stiefm&uuml;tterliches Dasein erleben. Es gibt jedoch Einsatzzwecke, welche die dort enthaltenen Steuer-elemente ans Tageslicht kommen lassen. Eines dieser Steuer-elemente ist die MSForms-Textbox. Sie bietet gegen&uuml;ber dem eingebauten TextBox-Steuerelement unter anderem den Vorteil, dass auch Texte mit mehr als 64.000 Zeichen angezeigt werden k&ouml;nnen. Die &uuml;brigen Vor- und Nachteile liefert der vorliegende Beitrag.<\/b><\/p>\n<h2>Problem Bearbeitung langer Texte<\/h2>\n<p>Ein Problem herk&ouml;mmlicher Textfelder ist, dass Sie damit keine Texte bearbeiten k&ouml;nnen, die l&auml;nger als 64.000 Zeichen sind. Dies k&ouml;nnen Sie reproduzieren, indem Sie eine Tabelle namens <b>tblTexte <\/b>mit den beiden Feldern <b>Text-ID <\/b>und <b>Inhalt <\/b>(Datentyp: <b>Langer Text<\/b>\/<b>Memo<\/b>) anlegen.<\/p>\n<p>Erstellen Sie dann ein Formular mit der Tabelle <b>tblTexte <\/b>als Datenherkunft und f&uuml;gen Sie die beiden Felder aus der Feldliste zum Formularentwurf hinzu. Nun legen wir einen Text von knapp 64.000 Zeichen im ersten Datensatz der Tabelle an:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>EinLangerText()\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     <span style=\"color:blue;\">Dim <\/span>strText<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     <span style=\"color:blue;\">Set<\/span> rst = db.OpenRecordset(\"SELECT * FROM tblTexte\", _\r\n         dbOpenDynaset)\r\n     rst.Add<span style=\"color:blue;\">New<\/span>\r\n     strText = String(63995, \"A\")\r\n     rst!Inhalt = strText\r\n     rst.Update\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Wechseln Sie dann zum Formular in der Formularansicht und f&uuml;gen Sie noch ein paar Zeichen zum Text hinzu. Nach dem Hinzuf&uuml;gen von f&uuml;nf Zeichen werden Sie keine neuen Zeichen mehr hinzuf&uuml;gen k&ouml;nnen &#8211; das Limit von 64.000 ist dann erreicht. Sie k&ouml;nnen auch nicht mehr als 64.000 Zeichen &uuml;ber eine <b>INSERT INTO<\/b>-Anweisung hinzuf&uuml;gen. Die einzige M&ouml;glichkeit ist der Einsatz der oben verwendeten Prozedur mit den DAO-Methoden <b>AddNew <\/b>und <b>Update <\/b>des <b>Recordset<\/b>-Objekts.<\/p>\n<p>Das &auml;ndern des Textes ist weder in der Datenblattansicht der Tabelle noch im Formular m&ouml;glich.<\/p>\n<h2>Lange Texte in der MSForms-TextBox<\/h2>\n<p>Damit kommt der Einsatz der MSForms-TextBox. Diese f&uuml;gen Sie hinzu, indem Sie im Ribbon zum Tab <b>Entwurf <\/b>wechseln und das Men&uuml; unter Steuer-elemente aufklappen und den Eintrag ActiveX-Steuerelemente ausw&auml;hlen (s. Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_001.png\" alt=\"&ouml;ffnen des Dialogs zum Hinzuf&uuml;gen von ActiveX-Steuerelementen\" width=\"649,559\" height=\"256,2244\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: &ouml;ffnen des Dialogs zum Hinzuf&uuml;gen von ActiveX-Steuerelementen<\/span><\/b><\/p>\n<p>Daraufhin erscheint der Dialog aus Bild 2, mit dem Sie den Eintrag <b>Microsoft Forms 2.0 TextBox <\/b>selektieren und dieses per Mausklick auf die <b>OK<\/b>-Schaltfl&auml;che zum Formularentwurf hinzuf&uuml;gen k&ouml;nnen. Das neue Steuer-element wird dann relativ klein in der linken, oberen Ecke des Formulars angelegt &#8211; Sie d&uuml;rften das vom <b>TreeView<\/b>-Steuerelement her kennen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_002.png\" alt=\"Der Dialog zur Auswahl von ActiveX-Steuerelementen\" width=\"549,6265\" height=\"393,934\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Der Dialog zur Auswahl von ActiveX-Steuerelementen<\/span><\/b><\/p>\n<p>Die weiteren offensichtlichen Unterschiede zwischen diesem Steuer-element und dem eingebauten <b>TextBox<\/b>-Element sind das fehlende Bezeichnungsfeld sowie der 3D-Effekt f&uuml;r den Rahmen (s. Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_003.png\" alt=\"Das herk&ouml;mmliche Textfeld und sein MSForms-Bruder\" width=\"424,7115\" height=\"457,806\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Das herk&ouml;mmliche Textfeld und sein MSForms-Bruder<\/span><\/b><\/p>\n<p>Wenn wir uns die Eigenschaften dieses Steuerelements ansehen, finden wir auf den meisten Registerseiten eine vergleichsweise geringe Menge an Eigenschaften vor. Die spezifischen Eigenschaften des Steuerelements finden wir in englischer Sprache auf der Registerseite <b>Andere <\/b>(s. Bild 4). Bevor wir uns die Eigenschaften unter VBA ansehen, benennen wir das Steuer-element noch schnell in <b>txtMSForms <\/b>um.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_004.png\" alt=\"Eigenschaften der MSForms-TextBox\" width=\"299,7964\" height=\"605,8015\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Eigenschaften der MSForms-TextBox<\/span><\/b><\/p>\n<p>Danach k&ouml;nnen wir zum VBA-Editor wechseln, mit dem Men&uuml;befehl <b>Ansicht|Objektkatalog <\/b>(oder <b>F2<\/b>) den Objektkatalog &ouml;ffnen und uns die Eigenschaften des <b>TextBox<\/b>-Objekts der Bibliothek <b>MSForms <\/b>ansehen (s. Bild 5). Hier finden Sie noch einige weitere Eintr&auml;ge gegen&uuml;ber denen im Eigenschaftsfenster.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_005.png\" alt=\"Eigenschaften unter VBA\" width=\"299,7964\" height=\"617,3775\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Eigenschaften unter VBA<\/span><\/b><\/p>\n<h2>Aus eins mach zwei<\/h2>\n<p>Das ActiveX-Steuerelement besteht aus einem Container des Typs <b>CustomControl <\/b>sowie dem darin enthaltenen Steuer-element <b>TextBox<\/b>. Den Container referenzieren wir direkt &uuml;ber den Namen des Elements, das enthaltene Steuer-element &uuml;ber die Eigenschaft <b>Object<\/b>.<\/p>\n<p>Dies verdeutlichen die folgenden beiden Codezeilen, mit denen wir den Typ der beiden Elemente im Direktbereich ausgeben:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> TypeName(Me!txtMSForms)\r\n<span style=\"color:blue;\">Debug.Print<\/span> TypeName(Me!txtMSForms.Object)<\/pre>\n<p>Diese liefern n&auml;mlich:<\/p>\n<pre>CustomControl\r\n<span style=\"color:blue;\">Text<\/span>Box<\/pre>\n<h2>Eigenschaften per IntelliSense<\/h2>\n<p>Wenn Sie einfach <b>Me!txtMSForms.Object <\/b>und den Punkt im VBA-Editor eingeben, w&uuml;rden Sie vermutlich gern eine Liste der Eigenschaften und Methoden pr&auml;sentiert bekommen.<\/p>\n<p>Das ist aber nicht der Fall. Eine Alternative w&auml;re es, eine Objektvariable f&uuml;r das TextBox-Element zu deklarieren und diese im <b>Form_Load<\/b>-Ereignis des Formulars zu f&uuml;llen. Hier ist die Deklaration:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objMSForms<span style=\"color:blue;\"> As <\/span>MSForms.TextBox<\/pre>\n<p>Und so stellen Sie die Objektvariable ein:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     <span style=\"color:blue;\">Set<\/span> objMSForms = Me!txtMSForms.Object\r\n     <span style=\"color:blue;\">With<\/span> objMSForms\r\n     ''''...        \r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Ereignisse<\/h2>\n<p>Die Menge der &uuml;ber das Eigenschaftsfenster verf&uuml;gbaren Ereigniseigenschaften ist mit <b>Bei OLE Aktualisierung<\/b>, <b>Beim Hingehen<\/b>, <b>Beim Verlassen<\/b>, <b>Bei Fokuserhalt <\/b>und <b>Bei Fokusverlust <\/b>&uuml;berschaubar. Der Grund f&uuml;r diese wenigen Ereignisse ist, dass dies die Ereignisse des <b>CustomControl<\/b>-Elements sind, das als Container f&uuml;r das eigentliche Steuer-element dient &#8211; diese Ereignisse finden Sie also auch bei den &uuml;brigen Steuerelementen der MSForms-Sammlung.<\/p>\n<p>Wenn Sie die Ereignisse des eigentlichen Steuerelements nutzen wollen, m&uuml;ssen Sie den VBA-Editor zum Anlegen bem&uuml;hen. Hier w&auml;hlen Sie aus dem linken Kombinationsfeld den Namen des Steuerelements aus, hier <b>txtMSForms<\/b>. Im rechten Kombinationsfeld erscheinen dann die verf&uuml;gbaren Ereignisse (s. Bild 6). Das Ereignis <b>txtMSForms_Change <\/b>wird hier automatisch bei Auswahl des Eintrags im linken Kombinationsfeld angelegt. Erfreut stellen wir hier fest, dass das TextBox-Element der MSForms-Bibliothek offensichtlich &uuml;ber Drag and Drop-Funktionalit&auml;t verf&uuml;gt, was wir uns weiter unten noch ansehen werden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_006.png\" alt=\"Anlegen von Ereignisprozeduren f&uuml;r MSForms-Steuerelemente\" width=\"499,6607\" height=\"311,6528\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Anlegen von Ereignisprozeduren f&uuml;r MSForms-Steuerelemente<\/span><\/b><\/p>\n<p>Ein wesentlicher Unterschied zum herk&ouml;mmlichen TextBox-Element ist, dass es kein <b>Before-Update <\/b>und <b>AfterUpdate<\/b>-Ereignis gibt, sondern nur ein <b>Updated<\/b>-Ereignis.<\/p>\n<p>Beim Eingeben eines Zeichens werden beispielsweise die folgenden Ereignisse in dieser Reihenfolge ausgel&ouml;st:<\/p>\n<pre>KeyDown\r\nKeyPress\r\nUpdated\r\nUpdated\r\nChange\r\nKeyUp<\/pre>\n<h2>Datenbindung<\/h2>\n<p>Eine der wichtigeren Fragen f&uuml;r uns als Access-Benutzer ist nat&uuml;rlich: K&ouml;nnen wir das Steuer-element an ein Feld der an das Formular gebundenen Datenherkunft binden Die Antwort lautet ja &#8211; das TextBox-Element der MSForms-Bibliothek liefert mit <b>Steuerelementinhalt <\/b>genau die gleiche Eigenschaft f&uuml;r diesen Zweck wie das eingebaute <b>TextBox<\/b>-Element. Also binden wir das Steuer-element doch gleich einmal an das Feld Inhalt, an das wir auch das Textfeld im gleichen Formular gebunden haben.<\/p>\n<p>Nun k&ouml;nnen wir uns auch direkt davon &uuml;berzeugen, was geschieht, wenn wir versuchen, einen Text mit mehr als 64.000 Zeichen zu bearbeiten. Das Erste, was uns auff&auml;llt, ist die unterschiedliche Darstellung des Textes. Das eingebaute TextBox-Element bricht die Zeilen des anzuzeigenden Textes um, die MSForms-TextBox zeigt nur eine Zeile an.<\/p>\n<p>Auch das Einf&uuml;gen von Zeilenumbr&uuml;chen macht es nicht besser &#8211; diese werden im Standardzustand in Form eines entsprechenden Symbols angezeigt (s. Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_007.png\" alt=\"Anzeige des gleichen Textes in den beiden TextBox-Elementen\" width=\"424,7115\" height=\"457,806\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Anzeige des gleichen Textes in den beiden TextBox-Elementen<\/span><\/b><\/p>\n<h2>Zeilenumbruch<\/h2>\n<p>Wir k&ouml;nnen aber durch Einstellen der Eigenschaft <b>MultiLine <\/b>auf den Wert <b>Ja <\/b>(im Eigenschaftsfenster) oder <b>True <\/b>(per VBA) daf&uuml;r sorgen, dass die Inhalte in der MSForms-TextBox mit Zeilenumbruch ausgegeben werden. Wenn <b>MultiLine <\/b>auf <b>Ja <\/b>eingestellt ist, werden die Zeilenumbr&uuml;che ausgef&uuml;hrt und nicht als Icon dargestellt.<\/p>\n<p>Nun kommt noch die Eigenschaft <b>WordWrap <\/b>ins Spiel: Stellen Sie diese auf Nein ein, werden Zeilen nur umbrochen, wenn Sie einen Zeilenumbruch eingef&uuml;gt haben. Anderenfalls reichen die Zeilen &uuml;ber den rechten Rand des Steuerelements hinaus. Dies k&ouml;nnen Sie &auml;ndern, indem Sie <b>WordWrap <\/b>auf <b>Ja <\/b>einstellen. Dann werden die Zeilen an Leerzeichen umbrochen oder, wenn eine Zeile kein Leerzeichen aufweist, an der Stelle vor dem Erreichen des rechten Randes des Steuerelements.<\/p>\n<h2>Neue Zeilen<\/h2>\n<p>Wenn Sie mit der Eingabetaste neue Zeilenumbr&uuml;che hinzuf&uuml;gen wollen, k&ouml;nnen Sie dies immer bei gedr&uuml;ckter <b>Strg<\/b>-Taste erledigen &#8211; das allerdings nur, wenn die Eigenschaft <b>Multiline <\/b>auf den Wert <b>True <\/b>eingestellt ist. Erst wenn Sie die Eigenschaft <b>EnterKeyBehavior <\/b>auf den Wert <b>True <\/b>einstellen, erzeugt auch das reine Dr&uuml;cken der Eingabetaste (ohne <b>Strg<\/b>) einen Zeilenumbruch.<\/p>\n<h2>Anpassen an das Layout der eingebauten TextBox<\/h2>\n<p>Damit wir das gleiche Look and Feel wie mit dem eingebauten TextBox-Steuerelement erhalten, legen wir als Erstes die Schriftart fest. Das k&ouml;nnen wir nicht im Eigenschaftsfenster erledigen, da die entsprechende Eigenschaft dort nicht aufgef&uuml;hrt wird.<\/p>\n<p>Stattdessen legen wir die notwendigen Codezeilen in der <b>Form_Load<\/b>-Ereignisprozedur des Formulars an:<\/p>\n<pre><span style=\"color:blue;\">Set<\/span> objMSForms = Me!txtMSForms.Object\r\n<span style=\"color:blue;\">With<\/span> objMSForms\r\n     .Font.Name = \"Calibri\"\r\n     .Font.Size = 11\r\n     .ScrollBars = fmScrollBarsHorizontal\r\nEnd <span style=\"color:blue;\">With<\/span><\/pre>\n<p>Hier stellen wir auch gleich die Bildlaufleiste am rechten Rand ein. Es gibt &uuml;brigens vier Werte f&uuml;r die Eigenschaft <b>ScrollBars<\/b>: <\/p>\n<ul>\n<li><b>fmScrollBarsBoth<\/b><\/li>\n<li><b>fmScrollBarsHorizontal<\/b><\/li>\n<li><b>fmScrollBarsNone<\/b><\/li>\n<li><b>fmScrollBarsVertical<\/b><\/li>\n<\/ul>\n<h2>Ausrichtung einstellen<\/h2>\n<p>Die Ausrichtung des Textes legen Sie mit der Eigenschaft <b>TextAlign<\/b> ein. Diese erwartet einen der folgenden Werte:<\/p>\n<ul>\n<li><b>fmTextAlignLeft <\/b>(<b>1<\/b>): Ausrichtung links<\/li>\n<li><b>fmTextAlignCenter <\/b>(<b>2<\/b>): zentrierte Ausrichtung<\/li>\n<li><b>fmTextAlignRight <\/b>(<b>3<\/b>): Ausrichtung rechts <\/li>\n<\/ul>\n<h2>Automatische Gr&ouml;&szlig;e <\/h2>\n<p>Eine interessante Eigenschaft hei&szlig;t <b>AutoSize<\/b>. Wenn Sie diese auf <b>Ja <\/b>einstellen, erhalten Sie ein Textfeld, das beim &ouml;ffnen des Formulars auf die L&auml;nge der l&auml;ngsten Zeile des Inhalts eingestellt wird und das beim Eingeben von Text nach unten w&auml;chst (aber nicht in die Breite). Ich konnte noch keinen Sinn ausmachen, aber wer wei&szlig; &#8230;<\/p>\n<h2>MaxLength und AutoTab<\/h2>\n<p><!--30percent--><\/p>\n<p>Diese beiden Eigenschaften <b>MaxLength <\/b>und <b>AutoTab <\/b>h&ouml;ren sich interessant an, wenn man ihre Beschreibung in der Onlinehilfe liest. Bei <b>MaxLength = 4 <\/b>und <b>AutoTab = True <\/b>etwa soll der Fokus nach der Eingabe auf das n&auml;chste Steuer-element verschoben werden, was etwa f&uuml;r die Eingabe von Registrierungsdaten aus mehreren Zeichenketten wie <b>1234-2345-3456-4567<\/b> interessant w&auml;re. Leider klappt dies nicht wie in der Dokumentation beschrieben.<\/p>\n<h2>Markierten Text auslesen<\/h2>\n<p>F&uuml;r die folgenden Beispiele erstellen wir ein neues Formular, das wir auch an die Tabelle <b>tblTexte <\/b>binden. Es enth&auml;lt ein MSForms-Textfeld namens <b>txtMarkierungen<\/b>, das wir an das Feld Inhalt des Formulars binden.<\/p>\n<p>Wenn der Benutzer eine Markierung mit der Maus durchgef&uuml;hrt hat, soll der markierte Text in einem weiteren Textfeld namens <b>txtMarkierterText <\/b>angezeigt werden. Dazu legen wir die folgenden Codezeilen im Klassenmodul des Formulars an:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>objMarkierungen<span style=\"color:blue;\"> As <\/span>MSForms.TextBox\r\n<span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     <span style=\"color:blue;\">Set<\/span> objMarkierungen = Me.txtMarkierungen.Object\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>txtMarkierungen_MouseUp(...)\r\n     Me!txtMarkierterText = objMarkierungen.SelText\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die <b>Form_Load<\/b>-Prozedur f&uuml;llt die Objektvariable mit einem Verweis auf die MSForms-TextBox. Dann nutzen wir <b>MouseUp<\/b>-Ereignisprozedur, um den markierten Text mit der <b>SelText<\/b>-Eigenschaft auszulesen und im Textfeld <b>txtMarkierterText <\/b>auszugeben (s. Bild 8).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_011.png\" alt=\"Erfassen einer Markierung\" width=\"424,7115\" height=\"298,1829\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Erfassen einer Markierung<\/span><\/b><\/p>\n<p>Analog k&ouml;nnen wir mit den Eigenschaften <b>SelStart <\/b>und <b>SelLength <\/b>herausfinden, welcher Bereich markiert ist. Das ist an sich kein Vorteil gegen&uuml;ber dem normalen Textfeld, aber da dort die <b>SelStart<\/b>&#8211; und die <b>SelLength<\/b>-Eigenschaft als Integer definiert sind, k&ouml;nnen Sie dort nur Positionen bis zum 65.535ten Zeichen bestimmen. In der MSForms-TextBox hingegen gibt es diese Beschr&auml;nkung nicht.<\/p>\n<h2>Weitere Eigenschaften zur aktuellen Markierung: CurLine, CurTargetX, CurX<\/h2>\n<p>Die Eigenschaft <b>CurLine <\/b>liefert die Nummer der Zeile, in der sich aktuell die Einf&uuml;gemarke beziehungsweise das erste Zeichen der aktuellen Markierung befindet. Diese Eigenschaft ist 0-basiert.<\/p>\n<p>Die Eigenschaft <b>CurX<\/b> liefert die horizontale Position der Einf&uuml;gemarke in der Einheit <b>HIMETRIC<\/b>. <b>CurTargetX <\/b>liefert laut Dokumentation die &#8222;bevorzugte&#8220; Position der Einf&uuml;gemarke. Aus unseren Experimenten ergab sich kein sinnvoller Einsatzzweck f&uuml;r diese Eigenschaften.<\/p>\n<h2>Markierung erweitern<\/h2>\n<p>Die Eigenschaft <b>AutoWordSelect <\/b>legt fest, wie die Markierung erfolgt, wenn Sie diese &uuml;ber ein Wort hinaus erstrecken:<\/p>\n<ul>\n<li><b>True<\/b>: Alle beteiligten W&ouml;rter werden komplett markiert.<\/li>\n<li><b>False<\/b>: Es werden nur die beteiligten Zeichen markiert.<\/li>\n<\/ul>\n<p>Das bedeutet: Wenn Sie beispielsweise die Einf&uuml;gemarke in der Mitte eines Wortes platzieren und die Markierung dann etwa bei gedr&uuml;ckter Umschalttaste so erweitern, dass Sie auch noch mindestens einen Buchstaben des benachbarten Wortes markieren, dann werden automatisch beide W&ouml;rter komplett markiert (Einstellung: <b>True<\/b>).<\/p>\n<h2>Markierung auch bei Fokusverlust beibehalten<\/h2>\n<p>Sehr wichtig ist die Eigenschaft <b>HideSelection<\/b>. Wenn diese, wie standardm&auml;&szlig;ig vorgesehen, den Wert <b>True <\/b>aufweise, wird die aktuelle Markierung im <b>TextBox<\/b>-Element nicht mehr angezeigt, wenn das Steuer-element den Fokus verliert. Stellen Sie <b>HideSelection <\/b>hingegen auf <b>False <\/b>ein, bleibt die Markierung auch bei Fokusverlust erhalten.<\/p>\n<h2>Allgemeine Eigenschaften: LineCount und TextLength<\/h2>\n<p><b>LineCount <\/b>liefert die Gesamtanzahl der Zeilen, wie Sie im <b>TextBox<\/b>-Steuerelement angezeigt werden.<\/p>\n<p><b>TextLength <\/b>liefert die Anzahl der im <b>TextBox<\/b>-Element enthaltenen Zeichen.<\/p>\n<h2>Beim Aktivieren per Tabulatur-Taste<\/h2>\n<p>Wenn ein Text im <b>TextBox<\/b>-Element markiert war, das Feld dann den Fokus verliert und der Benutzer dann mit der Tabulator-Taste zur&uuml;ck auf dieses Feld geht, sollen Sie mit der Eigenschaft <b>EnterFieldBehavior <\/b>einstellen k&ouml;nnen, wie mit der vorhandenen Markierung verfahren werden soll:<\/p>\n<ul>\n<li><b>fmEnterFieldBehaviorSelectAll <\/b>(<b>0<\/b>): w&auml;hlt den gesamten Inhalt aus<\/li>\n<li><b>fmEnterFieldBehaviorRecallSelection <\/b>(<b>1<\/b>): beh&auml;lt die vorhandene Auswahl bei<\/li>\n<\/ul>\n<p>Dies konnten wir nicht best&auml;tigen &#8211; wenn wir das Textfeld per Tabulator-Taste aktiviert haben, wurde bei beiden Einstellungen die vorherige Markierung angezeigt.<\/p>\n<h2>Eingabe von Kennw&ouml;rtern<\/h2>\n<p>Wenn Sie wie in einem herk&ouml;mmlichen <b>TextBox<\/b>-Steuerelement Kennw&ouml;rter in maskierter Form eingeben m&ouml;chten, also so, dass bei der Eingabe etwa f&uuml;r jedes Zeichen ein Sternchen (<b>*<\/b>) erscheint, stellen Sie dies mit der Eigenschaft <b>PasswordChar <\/b>ein:<\/p>\n<pre>Me!txtMarkierungen.Object.PasswordChar = \"*\"<\/pre>\n<p>Soll der Text wieder auf herk&ouml;mmliche Art und Weise ausgegeben werden, stellen Sie <b>PasswordChar <\/b>wieder auf eine leere Zeichenkette ein (<b>&#8222;&#8220;<\/b>).<\/p>\n<h2>Eingabe von Tabulator-Zeichen<\/h2>\n<p>In der Einstellung <b>MultiLine = True <\/b>und <b>TabKeyBehavior = False <\/b>wird die Eingabe mit der Tabulator-Taste gar nicht ber&uuml;cksichtigt. Erst in Kombination mit der <b>Strg<\/b>-Taste wird der Fokus zum n&auml;chsten Steuer-element in der <b>Tab<\/b>-Reihenfolge weitergereicht.<\/p>\n<p>Erh&auml;lt dann <b>TabKeyBehavior <\/b>den Wert <b>True<\/b>, k&ouml;nnen Sie den Fokus durch einfache Bet&auml;tigung der Tabulator-Taste verschieben. <b>Strg+Tabulator <\/b>f&uuml;gt dann tats&auml;chlich einen Tabulator-Vorschub in den Text ein.<\/p>\n<h2>Komplette Zeile selektieren<\/h2>\n<p>Wenn Sie eine komplette Zeile selektieren wollen, k&ouml;nnen Sie dies standardm&auml;&szlig;ig durch einen Klick auf den schmalen Bereich links von der Zeile erledigen (s. Bild 9). Um dieses Verhalten zu deaktivieren, stellen Sie die Eigenschaft <b>SelectionMargin <\/b>auf <b>False <\/b>ein. Auf diese Weise wird der Text auch direkt am linken Rand angezeigt und nicht mehr mit der Einr&uuml;ckung.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_010.png\" alt=\"Selektieren der kompletten Zeile\" width=\"499,6607\" height=\"241,2503\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Selektieren der kompletten Zeile<\/span><\/b><\/p>\n<h2>Text und Value<\/h2>\n<p>W&auml;hrend diese beiden Eigenschaften sich beim eingebauten <b>TextBox<\/b>-Steuerelement insofern unterscheiden, als dass <b>Value <\/b>immer den gespeicherten Wert liefert und <b>Text <\/b>den aktuell sichtbaren Wert, ist das beim MSForms-TextBox-Element anders. Hier liefern beiden Eigenschaften immer den gleichen Wert.<\/p>\n<h2>Onlinehilfe<\/h2>\n<p>In der Datei <b>FM20.CHM <\/b>(unter Windows 10 und Office 2016, 32bit im Verzeichnis <b>C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\VBA\\VBA6\\1031 <\/b>zu finden) finden Sie eine Onlinehilfe mit weiteren Informationen zu den Steuer-elemente der MSForms-Bibliothek (s. Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_008.png\" alt=\"Hilfe-Datei\" width=\"549,6265\" height=\"503,076\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Hilfe-Datei<\/span><\/b><\/p>\n<p>Sie k&ouml;nnen auch im Objektkatalog den Eintrag markieren, zu dem Sie Informationen ben&ouml;tigen, und dann die Taste <b>F1 <\/b>bet&auml;tigen. Dies &ouml;ffnet die entsprechende Internetseite mit dem Hilfetext.<\/p>\n<h2>Zwischenablage-Funktionen<\/h2>\n<p>Die TextBox bietet Methoden, mit denen Sie den aktuell markierten Text unkompliziert in die Zwischenablage &uuml;bertragen k&ouml;nnen &#8211; entweder zum Kopieren (<b>Copy<\/b>) oder zum Ausschneiden (<b>Cut<\/b>). Die folgenden beiden Methoden haben wir f&uuml;r zwei Schaltfl&auml;chen hinterlegt, welche den markierten Text entweder kopieren oder ausschneiden:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdCopy_Click()\r\n     Me!txtMarkierungen.Object.Copy\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>cmdCut_Click()\r\n     Me!txtMarkierungen.Object.Cut\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Eigenschaft <b>CanPaste <\/b>gibt an, ob der aktuelle Inhalt der Zwischenablage in das <b>TextBox<\/b>-Element eingef&uuml;gt werden kann. Damit k&ouml;nnen wir dem Formular, in dem sich das <b>TextBox<\/b>-Element befindet, eine Schaltfl&auml;che hinzuf&uuml;gen, welche in Abh&auml;ngigkeit vom m&ouml;glichen Einf&uuml;gen des Inhalts der Zwischenablage aktiviert oder deaktiviert wird.<\/p>\n<p>Wir haben eine solche Ereignisprozedur beispielhaft f&uuml;r das <b>MouseDown<\/b>-Ereignis der TextBox angelegt:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>txtMarkierungen_MouseDown(ByVal Button<span style=\"color:blue;\"> As Integer<\/span>, ByVal Shift<span style=\"color:blue;\"> As Integer<\/span>, ByVal X<span style=\"color:blue;\"> As Single<\/span>, ByVal Y<span style=\"color:blue;\"> As Single<\/span>)\r\n     <span style=\"color:blue;\">If <\/span>objMarkierungen.CanPaste<span style=\"color:blue;\"> Then<\/span>\r\n         Me!cmdPaste.Enabled = <span style=\"color:blue;\">True<\/span>\r\n     <span style=\"color:blue;\">Else<\/span>\r\n         Me!cmdPaste.Enabled = <span style=\"color:blue;\">False<\/span>\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Wenn die Schaltfl&auml;che aktiviert ist, kann sie den Inhalt der Zwischenablage mit der folgenden Ereignisprozedur einf&uuml;gen:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdPaste_Click()\r\n     Me!txtMarkierungen.Object.Paste\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Drag and Drop<\/h2>\n<p>Drag and Drop ist nat&uuml;rlich ein sehr interessantes Feature &#8211; beispielsweise w&auml;re es in vielen F&auml;llen praktisch, wenn man etwa einen Dateinamen aus dem Explorer einfach in ein Textfeld ziehen und diesen so in einer Tabelle speichern oder die Datei zur weiteren Verarbeitung &ouml;ffnen k&ouml;nnte. F&uuml;r das Drag and Drop-Beispiel erstellen wir ein neues Formular namens <b>frmDragAndDrop <\/b>und f&uuml;gen diesem eine MSForms-TextBox namens <b>txtDateipfad <\/b>hinzu (s. Bild 11).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_012.png\" alt=\"Beispielformular f&uuml;r Drag and Drop\" width=\"424,7115\" height=\"146,2528\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Beispielformular f&uuml;r Drag and Drop<\/span><\/b><\/p>\n<p>F&uuml;r das Steuer-element legen wir eine Variable im Klassenmodul des Formulars an:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>WithEvents objDateipfad<span style=\"color:blue;\"> As <\/span>MSForms.TextBox<\/pre>\n<p>Au&szlig;erdem f&uuml;llen wir diese in der <b>Form_Load<\/b>-Methode:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     <span style=\"color:blue;\">Set<\/span> objDateipfad = Me!txtDateipfad.Object\r\n     objDateipfad.DragBehavior = fmDragBehaviorEnabled\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Damit wir Drag and Drop &uuml;berhaupt mit der TextBox nutzen k&ouml;nnen, stellen wir au&szlig;erdem die Eigenschaft <b>DragBehavior <\/b>auf den Wert <b>fmDragBehaviorEnabled <\/b>(<b>1<\/b>) ein.<\/p>\n<p>Ziehen wir nun einen Dateinamen aus dem Windows Explorer auf das Textfeld, erhalten wir allerdings noch nicht die gew&uuml;nschte Resonanz (s. Bild 12).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_013.png\" alt=\"Drag and Drop funktioniert nicht einfach so.\" width=\"424,7115\" height=\"146,2528\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Drag and Drop funktioniert nicht einfach so.<\/span><\/b><\/p>\n<p>Um herauszufinden, wie wir die vorhandenen Ereignisse f&uuml;r die Implementierung der Drag and Drop-Funktion nutzen k&ouml;nnen, legen wir diese einfach erstmal alle an und tragen jeweils eine <b>Debug.Print<\/b>-Anweisung ein, um zu erfahren, welches Ereignis wann ausgel&ouml;st wird (s. Listing 1).<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>objDateipfad_BeforeDragOver(ByVal Cancel<span style=\"color:blue;\"> As <\/span>MSForms.ReturnBoolean, ByVal Data<span style=\"color:blue;\"> As <\/span>MSForms.DataObject, _\r\n         ByVal X<span style=\"color:blue;\"> As Single<\/span>, ByVal Y<span style=\"color:blue;\"> As Single<\/span>, ByVal DragState<span style=\"color:blue;\"> As <\/span>MSForms.fmDragState, ByVal Effect<span style=\"color:blue;\"> As <\/span>MSForms._\r\n         ReturnEffect, ByVal Shift<span style=\"color:blue;\"> As Integer<\/span>)\r\n     <span style=\"color:blue;\">Debug.Print<\/span> \"BeforeDragOver\"\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>objDateipfad_BeforeDropOrPaste(ByVal Cancel<span style=\"color:blue;\"> As <\/span>MSForms.ReturnBoolean, ByVal Action<span style=\"color:blue;\"> As <\/span>MSForms.fmAction, _\r\n         ByVal Data<span style=\"color:blue;\"> As <\/span>MSForms.DataObject, ByVal X<span style=\"color:blue;\"> As Single<\/span>, ByVal Y<span style=\"color:blue;\"> As Single<\/span>, ByVal Effect<span style=\"color:blue;\"> As <\/span>MSForms.ReturnEffect, _\r\n         ByVal Shift<span style=\"color:blue;\"> As Integer<\/span>)\r\n     <span style=\"color:blue;\">Debug.Print<\/span> \"BeforeDropOrPaste\"\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>objDateipfad_DropButtonClick()\r\n     <span style=\"color:blue;\">Debug.Print<\/span> \"DropButtonClick\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Test der drei Ereignisse, die mit dem Drag and Drop zusammenh&auml;ngen<\/span><\/b><\/p>\n<p>Ein erster Test zeigt, dass beim &uuml;berfahren des Textfeldes mit einem Eintrag des Windows Explorers lediglich das Ereignis <b>BeforeDragOver <\/b>ausgel&ouml;st wird.<\/p>\n<p>Vermutlich m&uuml;ssen wir hier die Weichen stellen, damit die &uuml;brigen Ereignisse auch feuern. Die Ereignisprozedur liefert die folgenden Parameter:<\/p>\n<ul>\n<li><b>Cancel<\/b>: Einstellung auf <b>True <\/b>bedeutet, dass die Anwendung das Ereignis verarbeiten soll, sprich: Wenn wir diese Einstellung vornehmen, wird zumindest auch das Ereignis <b>BeforeDropOrPaste <\/b>ausgel&ouml;st.<\/li>\n<li><b>Data<\/b>: Liefert ein Objekt des Typs <b>DataObject<\/b>.<\/li>\n<li><b>X<\/b>, <b>Y<\/b>: Liefert die Koordinaten des Mauszeigers relativ zur TextBox.<\/li>\n<li><b>DragState<\/b>: Liefert Informationen dar&uuml;ber, wo sich die Maus gerade befindet: <b>fmDragStateEnter <\/b>(<b>0<\/b>) &#8211; innerhalb des Zielbereichs, <b>fmDragStateLeave <\/b>(<b>1<\/b>) &#8211; au&szlig;erhalb des Zielbereichs und <b>fmDragStateOver <\/b>(<b>2<\/b>) &#8211;  an einer neuen Position, jedoch im selben Zielbereich. <\/li>\n<li><b>Effect<\/b>: Legt den Effekt fest, der beim Fallenlassen ausgel&ouml;st werden soll, wodurch ein entsprechendes Symbol f&uuml;r den Mauszeiger angezeigt wird: <b>fmDropEffectNone <\/b>(<b>0<\/b>) &#8211; zeigt den durchgestrichenen Kreis an, <b>fmDropEffectCopy <\/b>(<b>1<\/b>) &#8211; zeigt das Kopieren-Symbol an,  <b>fmDropEffectMove <\/b>(<b>2<\/b>) &#8211; zeigt das Verschieben-Symbol an, <b>fmDropEffectCopyOrMove <\/b>(<b>3<\/b>) &#8211; gleiches Symbol wie Kopieren<\/li>\n<li><b>Shift<\/b>: Liefert einen Wert, der angibt, welche Tasten aktuell gedr&uuml;ckt sind: <b>fmShiftMask <\/b>(<b>1<\/b>) &#8211; <b>Umschalt<\/b>-Taste,  <b>fmCtrlMask <\/b>(<b>2<\/b>) &#8211; <b>Strg<\/b>-Taste und <b>fmAltMask <\/b>(<b>4<\/b>) &#8211; <b>Alt<\/b>-Taste. Kombinationen der Werte werden durch Addition &uuml;bermittelt, <b>Umschalt<\/b>-Taste und <b>Alt<\/b>-Taste gleichzeitig w&uuml;rde also etwa den Wert 1+4=5 liefern.<\/li>\n<\/ul>\n<p>Wir wissen also nun, dass wir <b>Cancel <\/b>auf <b>True <\/b>einstellen m&uuml;ssen, wenn wir selbst den Drag and Drop-Vorgang ausprogrammieren wollen. In diesem Fall wird dann auch noch die <b>BeforeDropOrPaste<\/b>-Ereignisprozedur ausgel&ouml;st, welche die gleichen Parameter wie das <b>BeforeDragOver<\/b>-Ereignis bietet.<\/p>\n<p>Nach dem Testen der Drag and Drop-Funktion kommt die Ern&uuml;chterung: Drag and Drop mit Daten vom Windows Explorer gelingt nicht &#8211; wir kommen nicht an den Dateinamen heran. Das h&auml;lt uns allerdings nicht auf &#8211; wir gehen einen kleinen Umweg. Dabei nutzen wir die M&ouml;glichkeit, den Inhalt der Drag and Drop-Operation in die Zwischenablage zu kopieren.<\/p>\n<p>Von dort k&ouml;nnen wir wiederum den Dateinamen auslesen, und zwar mithilfe einiger API-Funktionen, die wir in fertig zusammengestellter Form im Internet finden. Listing 2 zeigt, wie wir in der Ereignisprozedur <b>BeforeDropOrPaste <\/b>den Inhalt des Parameters <b>Data <\/b>mit der Methode <b>PutInClipboard <\/b>in die Zwischenablage kopieren.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>objDateipfad_BeforeDropOrPaste(ByVal Cancel<span style=\"color:blue;\"> As <\/span>MSForms.ReturnBoolean, ByVal Action<span style=\"color:blue;\"> As <\/span>MSForms.fmAction, _\r\n         ByVal Data<span style=\"color:blue;\"> As <\/span>MSForms.DataObject, ByVal X<span style=\"color:blue;\"> As Single<\/span>, ByVal Y<span style=\"color:blue;\"> As Single<\/span>, ByVal Effect<span style=\"color:blue;\"> As <\/span>MSForms.ReturnEffect, _\r\n         ByVal Shift<span style=\"color:blue;\"> As Integer<\/span>)\r\n     <span style=\"color:blue;\">Dim <\/span>intAnzahl<span style=\"color:blue;\"> As Integer<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strDateipfade()<span style=\"color:blue;\"> As String<\/span>\r\n     Data.PutInClipboard\r\n     intAnzahl = GetClipboardFiles(strDateipfade())\r\n     <span style=\"color:blue;\">If <\/span>intAnzahl &gt; 0<span style=\"color:blue;\"> Then<\/span>\r\n         Cancel = <span style=\"color:blue;\">True<\/span>\r\n         objDateipfad.Text = strDateipfade(0)\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 2: Ereignisprozedur, die vor dem Fallenlassen ausgel&ouml;st wird<\/span><\/b><\/p>\n<p>Die Funktion <b>GetClipboardFiles <\/b>ermittelt daraus ein Array aller enthaltenen Dateinamen, die wir dann nur noch auslesen und in das <b>TextBox<\/b>-Element eintragen m&uuml;ssen.<\/p>\n<h2>Texte markieren f&uuml;r Fortgeschrittene<\/h2>\n<p>Weiter oben haben Sie bereits die grundlegenden Techniken kennengelernt, wie Sie Texte in einer MSForms-TextBox markieren k&ouml;nnen und wie Sie auf die Markierungen zugreifen.<\/p>\n<p>Nun haben Sie auch mittlerweile erfahren, dass die MSForms-TextBox gr&ouml;&szlig;ere Mengen von Text verarbeiten kann als das eingebaute TextBox-Element &#8211; und dass auch die Eigenschaften <b>SelStart <\/b>und <b>SelLength <\/b>hier als <b>Long <\/b>deklariert sind und nicht als <b>Integer <\/b>und somit auch gr&ouml;&szlig;ere Werte annehmen k&ouml;nnen.<\/p>\n<p>Wenn Sie nun in diesem Steuer-element mit einem langen Text eine Textpassage markieren wollen, die sich weit hinter dem zu Beginn sichtbaren Bereich befindet, k&ouml;nnen Sie das ganz einfach tun, indem Sie die entsprechenden Werte f&uuml;r die Eigenschaften <b>SelStart <\/b>und <b>SelLength <\/b>einstellen. Das einzige Problem, das wir beim herk&ouml;mmlichen <b>TextBox<\/b>-Element haben, lautet: Wir bekommen wir den markierten Bereich in den sichtbaren Bereich<\/p>\n<p>Hier bietet das MSForms-TextBox-Element noch die Eigenschaft <b>CurLine <\/b>an, mit der wir nicht nur ermitteln k&ouml;nnen, in welcher Zeile sich die Einf&uuml;gemarke aktuell befindet, sondern mit der wir auch die aktuelle Zeile einstellen k&ouml;nnen &#8211; und diese somit in den sichtbaren Bereich holen.<\/p>\n<p>Wenn wir nun einen fest definierten Bereich annehmen &#8211; beispielsweise vom 3.000ten Zeichen mit einer L&auml;nge von 20 Zeichen &#8211; k&ouml;nnen wir diesen &uuml;ber eine Schaltfl&auml;che mit der folgenden Ereignisprozedur einblenden:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdMarkieren_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>lngCurLine<span style=\"color:blue;\"> As Long<\/span>\r\n     objMarkierungen.SelStart = 3000\r\n     objMarkierungen.SelLength = 20\r\n     lngCurLine = objMarkierungen.CurLine\r\n     objMarkierungen.CurLine = lngCurLine + 5\r\n     Me!txtMarkierungen.SetFocus\r\n     objMarkierungen.SelStart = 3000\r\n     objMarkierungen.SelLength = 20\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>In Bild 13 sehen Sie das Ergebnis dieser Prozedur. Diese setzt zun&auml;chst die Markierung und ermittelt dann die Zeile, in der die Markierung beginnt. Dann stellt sie &uuml;ber die Eigenschaft <b>CurLine <\/b>die aktuelle Zeile neu ein, die dann auch in den sichtbaren Bereich ger&uuml;ckt wird.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_014.png\" alt=\"Markieren und Anzeigen eines weit hinten liegenden Bereichs\" width=\"424,7115\" height=\"416,7482\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Markieren und Anzeigen eines weit hinten liegenden Bereichs<\/span><\/b><\/p>\n<p>Damit die Zeile nicht ganz unten erscheint, sondern in der Mitte, f&uuml;gen wir zur zuvor gespeicherten Zeilenangabe noch f&uuml;nf Zeilen hinzu. Dann erh&auml;lt das Textfeld den Fokus und wir stellen die durch das Setzen der aktuellen Zeile mit <b>CurLine <\/b>verloren gegangene Markierung wieder neu.<\/p>\n<h2>Verankern des Steuerelements<\/h2>\n<p>In neueren Access-Versionen gibt es die beiden Eigenschaften <b>Horizontaler Anker <\/b>und <b>Vertikaler Anker<\/b>. Damit k&ouml;nnen Sie daf&uuml;r sorgen, dass ein Steuer-element mit entsprechenden Einstellungen beim &auml;ndern der Formulargr&ouml;&szlig;e ebenfalls seine H&ouml;he und\/oder Breite &auml;ndert. <\/p>\n<p>Diese beiden Eigenschaften gibt es auch f&uuml;r die MSForms-TextBox. Leider funktioniert dies aber nicht wie erwartet. Wenn Sie nur die Breite des Formulars ver&auml;ndern und somit auch die Breite des TextBox-Elements, sieht alles noch recht gut aus &#8211; mit Ausnahme einer eventuell eingeblendeten vertikalen Bildlaufleiste, die dann ebenfalls verbreitert wird (s. Bild 14).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_015.png\" alt=\"Das Verbreitern des horizontal verankerten Steuerelements gelingt noch recht gut ...\" width=\"649,559\" height=\"189,0333\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Das Verbreitern des horizontal verankerten Steuerelements gelingt noch recht gut &#8230;<\/span><\/b><\/p>\n<p>Wenn wir allerdings die H&ouml;he des Formulars &auml;ndern, w&auml;chst auch die Schriftgr&ouml;&szlig;e des enthaltenen Textes (s. Bild 15).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_01\/pic_1114_016.png\" alt=\"... aber die &auml;nderung der H&ouml;he vergr&ouml;&szlig;ert auch die Schriftart, was nicht unbedingt erw&uuml;nscht ist.\" width=\"424,7115\" height=\"424,7115\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: &#8230; aber die &auml;nderung der H&ouml;he vergr&ouml;&szlig;ert auch die Schriftart, was nicht unbedingt erw&uuml;nscht ist.<\/span><\/b><\/p>\n<p>Dies mag vielleicht seinen Anwendungszweck haben, aber wir erwarten doch ein anderes Verhalten. Die Schrift wird nur gr&ouml;&szlig;er dargestellt, die dahinter liegende Eigenschaft <b>Font.Size <\/b>wird nicht ge&auml;ndert, kann also auch nicht nachtr&auml;glich beeinflusst werden.<\/p>\n<p>Wenn Sie die Verankern-Eigenschaften also nutzen m&ouml;chten, sollten Sie sich auf den horizontalen Anker beschr&auml;nken und das Steuer-element von Anfang an etwas gro&szlig;z&uuml;giger auslegen. Leider ist also auch bei diesem Steuer-element wieder ein kleiner Kompromiss angezeigt.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Die MSForms-Bibliothek bietet einige interessante Steuer-elemente, mit denen sich die eine oder andere Funktion abbilden l&auml;sst, die mit den eingebauten Steuerelementen nicht m&ouml;glich ist. Das <b>TextBox<\/b>-Element erlaubt beispielsweise die Programmierung von Drag and Drop oder auch den Einsatz von <b>SelLength <\/b>und <b>SelStart <\/b>f&uuml;r mehr als 48.000 Zeichen. Au&szlig;erdem k&ouml;nnen wir mit diesem Steuer-element eine weiter hinten liegende Markierung in den sichtbaren Bereich holen.<\/p>\n<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>MSFormsTextbox.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/0B6BCA2F-038D-4F7F-BA22-AFCB1ED75062\/aiu_1114.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die MSForms-Bibliothek beherbergt einige Steuer-elemente, die unter Access ein stiefm&uuml;tterliches Dasein erleben. Es gibt jedoch Einsatzzwecke, welche die dort enthaltenen Steuer-elemente ans Tageslicht kommen lassen. Eines dieser Steuer-elemente ist die MSForms-Textbox. Sie bietet gegen&uuml;ber dem eingebauten TextBox-Steuerelement unter anderem den Vorteil, dass auch Texte mit mehr als 64.000 Zeichen angezeigt werden k&ouml;nnen. Die &uuml;brigen Vor- und Nachteile liefert der vorliegende Beitrag.<\/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":[66012018,662018,44000023],"tags":[],"class_list":["post-55001114","post","type-post","status-publish","format-standard","hentry","category-66012018","category-662018","category-Mit_Formularen_arbeiten"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Die MSForms-Textbox - 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\/Die_MSFormsTextbox\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Die MSForms-Textbox\" \/>\n<meta property=\"og:description\" content=\"Die MSForms-Bibliothek beherbergt einige Steuer-elemente, die unter Access ein stiefm&uuml;tterliches Dasein erleben. Es gibt jedoch Einsatzzwecke, welche die dort enthaltenen Steuer-elemente ans Tageslicht kommen lassen. Eines dieser Steuer-elemente ist die MSForms-Textbox. Sie bietet gegen&uuml;ber dem eingebauten TextBox-Steuerelement unter anderem den Vorteil, dass auch Texte mit mehr als 64.000 Zeichen angezeigt werden k&ouml;nnen. Die &uuml;brigen Vor- und Nachteile liefert der vorliegende Beitrag.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-07T16:58:53+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg09.met.vgwort.de\/na\/43caa935133a45f3bca113fa91563c8b\" \/>\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=\"21\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Die MSForms-Textbox\",\"datePublished\":\"2021-12-07T16:58:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/\"},\"wordCount\":3774,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/43caa935133a45f3bca113fa91563c8b\",\"articleSection\":[\"1\\\/2018\",\"2018\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/\",\"name\":\"Die MSForms-Textbox - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/43caa935133a45f3bca113fa91563c8b\",\"datePublished\":\"2021-12-07T16:58:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/43caa935133a45f3bca113fa91563c8b\",\"contentUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/43caa935133a45f3bca113fa91563c8b\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_MSFormsTextbox\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Die MSForms-Textbox\"}]},{\"@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":"Die MSForms-Textbox - 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\/Die_MSFormsTextbox\/","og_locale":"de_DE","og_type":"article","og_title":"Die MSForms-Textbox","og_description":"Die MSForms-Bibliothek beherbergt einige Steuer-elemente, die unter Access ein stiefm&uuml;tterliches Dasein erleben. Es gibt jedoch Einsatzzwecke, welche die dort enthaltenen Steuer-elemente ans Tageslicht kommen lassen. Eines dieser Steuer-elemente ist die MSForms-Textbox. Sie bietet gegen&uuml;ber dem eingebauten TextBox-Steuerelement unter anderem den Vorteil, dass auch Texte mit mehr als 64.000 Zeichen angezeigt werden k&ouml;nnen. Die &uuml;brigen Vor- und Nachteile liefert der vorliegende Beitrag.","og_url":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-12-07T16:58:53+00:00","og_image":[{"url":"http:\/\/vg09.met.vgwort.de\/na\/43caa935133a45f3bca113fa91563c8b","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"21\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Die MSForms-Textbox","datePublished":"2021-12-07T16:58:53+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/"},"wordCount":3774,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/43caa935133a45f3bca113fa91563c8b","articleSection":["1\/2018","2018","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/","url":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/","name":"Die MSForms-Textbox - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/43caa935133a45f3bca113fa91563c8b","datePublished":"2021-12-07T16:58:53+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/#primaryimage","url":"http:\/\/vg09.met.vgwort.de\/na\/43caa935133a45f3bca113fa91563c8b","contentUrl":"http:\/\/vg09.met.vgwort.de\/na\/43caa935133a45f3bca113fa91563c8b"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Die_MSFormsTextbox\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Die MSForms-Textbox"}]},{"@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\/55001114","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=55001114"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001114\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}