Word 2016: Formulare

Texteingabe steuern

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Man kann zwar festlegen, dass nur Zahlen oder Datumsangaben erfolgen dürfen oder dass Texte eine bestimmte Länge haben müssen – doch manchmal genügt das nicht.
06:25

Transkript

Man kann beim Verlassen eines Textfeldes oder eines Dropdown-Feldes überprüfen, was eingegeben wurde. Dieser Text kann weiterverarbeitet werden oder dieser Text kann auch manipuliert werden. Das heißt, es könnte anderer Text reingeschrieben werden. Das zeige ich Ihnen an zwei kleinen Beispielen, was man damit machen kann. Beispiel 1: In einem Textfeld soll eine Zahl eingetragen werden. Zum Beispiel, "1234" und beim Verlassen soll diese Zahl als Euro formatiert werden. Prima! Eigentlich kein schwerer Aufwand. Das kann man durch eine Einstellung in den Eigenschaften des Textfeldes erreichen. Was passiert nun aber, wenn ich in dem Feld - "viel Geld" - also einen Text reinschreibe? Nun, dann soll natürlich nichts manipuliert werden. Das heißt, das Eurosymbol, oder der Text "Euro", soll nur dann erscheinen, wenn wirklich eine Zahl drin ist. Das heißt, ich muss überprüfen, was hat der Anwender/in hier eingegeben. Und das zeige ich Ihnen mal. Ich habe hier ein kleines Makro "ZahlFormatieren". Das heißt, ich überprüfe von dem Dokument, von allen Formularfeldern, das Formularfeld, das heißt hier Betrag, und überprüfe "If IsNumeric(.Result). Also, der Result von dem ganzen Formularfeld, wenn er eine Zahl ist, dann schreibe zurück in den Result, also in den Inhalt, in das Formularfeld, den alten Result und der wird mit der VBA-Funktion "Format" formatiert - Achtung! US-amerikanische Schreibweise - Eintausend, Punkt, Komma, Null, Null und hinten habe ich jetzt Euro als Text gehängt, ich hätte auch das Euro-Symbol oder Schweizer Franken verwenden können. Das heißt also, der alte Result wird hier verändert und wieder zurückgeschrieben in das Feld und deshalb bewirkt es beim Reinschreiben von Text, TAB, wird dieser Text eben formatiert. Ein ähnliches Problem habe ich weiter unten im nächsten Beispiel. Manchmal passiert’s bei Formularfeldern, dass zu viel Text eingegeben wird und vor allen Dingen, dass der Text mit einem ENTER-Zeichen beendet wird. Entweder aus Versehen oder, beispielsweise, bei einer Straße, wir schreiben mal die "Grasserstr." ENTER, er wohnt hier im "Hinterhof". Das ist nicht gewünscht, weil Sie haben’s bereits gesehen - den Tippfehler machen wir raus - es ist nicht gewünscht, weil dadurch wird das Formular verschoben und das Adressfeld stimmt vielleicht nicht überein. Ich möchte nun ganz gerne - Variante 1 - dass der Text einfach rausgelöscht wird, TAB, der zweite Text nach dem ENTER verschwindet. Ist ja restriktiv, nochmal, "Rene" ENTER "Martin". Man kann es natürlich auch anders lösen, indem nicht der "Martin" gelöscht wird, sondern einfach nur das ENTER-Zeichen gelöscht wird, TAB, und Sie sehen, die beiden Texte werden jetzt aneinander gefügt. Nochmal, "Rene" ENTER "Martin" TAB und das ENTER-Zeichen wird rausgelöscht. Wie habe ich das gemacht? Nun das geht auch über die Eigenschaft "Result". Ich habe hier drei Mal ENTER entfernen, mit einem etwas veränderten Namen. In dem ersten Beispiel überprüfe ich ob der Result ein Enter "vbCr" hat. Das heißt "InStr": Bitte such mal die Position des ENTER-Zeichens. Wenn du eine findest, dann gibt es eine Position "größer als Null", dann ist also irgendwo ein ENTER drin, dann suche ich diese Position nochmal, "InStr" von dieser Position, und ziehe von der Position "1" ab. Das heißt, "Rene", wenn an fünfter Stelle ein ENTER ist, dann hätte ich hier eine 5, und minus 1 gibt 4 und jetzt schneide ich mit der Funktion "Left", vier Buchstaben von links raus und bekomme eben den Text "Rene" oder hier "Grasserstr." zurückgegeben und das schreibe ich in das Feld rein. Das Gleiche überprüfe ich einerseits für ENTER (vbCr), andererseits für Character von 11 (Chr(11)), das ist SHIFT+ENTER, das ist der Zeilenumbruch. Kann ich das eine und das andere überprüfen und beides mal wird der Text nach dem ENTER, beziehungsweise, dem SHIFT-ENTER, rausgelöscht. Die Alternative dieses ENTER-Entfernen sehen Sie hier. - ich muss das ganz rüberschieben - Hier durchlaufe ich mit einer Schleife, mit einer Zählerschleife, alle Buchstaben und Sie sehen hier, "For i = Len", "to 1", ich fang beim letzten an, bis zum ersten, nicht vom ersten bis zum letzten, weil wenn ich den siebten, den dritten lösche, soll sich die Nummerierung nicht verschieben. Deshalb fange ich ja bewusst beim letzten an. Wenn du ein VB bist (vbCr), du Zeichennummer 4, oder du ein SHIFT-ENTER bist, dann nimm bitte den Text bis zu diesem Zeichen und den Text hinter diesem Zeichen. Also auf deutsch, ich schmeiß einfach die ENTERs raus. Ich durchlaufe die ganze Liste der Buchstaben und lösche nacheinander die ENTER, beziehungsweise SHIFT-ENTER, die Zeilenumbrüche raus. Man kann es mit einer Schleife machen. Das ist sicherlich der klassische Weg. Man kann es auch etwas schneller machen, wenn Sie die Funktion "Split", beziehungsweise "Join" kennen, dann wissen Sie sicherlich, ich kann diesen Text aufsplitten, indem ich das ENTER als Trennzeichen nehme und das übergebe ich an einen Array. Dieser Array wird nun wieder zusammengefasst mit "Join", zu dem gleichen Inhalt. Und auf deutsch: Damit habe ich die ENTER rausgelöscht. Also, ich trenne diese Texte "Rene"/"Martin" auf, indem ich das ENTER-Zeichen als Separator verwende und baue dann die einzelnen Elemente des Arrays, wieder zusammen zu einem Text. Das mache ich einmal mit "vbCr", einmal wieder mit der Zeilenschaltung "Character von 11" und diese beiden Zeilen, die Sie hier haben, die genügen, um das Ganze zu machen. Ist etwas kürzer, etwas eleganter, allerdings etwas schwieriger zu denken. Die Variante sollten Sie nur verwenden, wenn Sie wirklich mit Datenfeldern, mit Arrays sich auskennen und wenn Sie die Funktionen Join und Split kennen, ansonsten machen wir’s klassisch, über eine Schleife. Das ist leichter zu verstehen, leichter zu machen, dauert vielleicht ein wenig länger.

Word 2016: Formulare

Gestalten Sie Formulare in Word 2016 und nutzen Sie die unterschiedlichen Steuerelemente. Als Bonus finden Sie auch noch Programmierbeispiele für besondere Zwecke.

2 Std. 21 min (35 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.09.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!