{"id":55001121,"date":"2018-04-01T00:00:00","date_gmt":"2020-05-13T21:18:36","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1121"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Schriftarten_im_VBAEditor","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/","title":{"rendered":"Schriftarten im VBA-Editor"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg06.met.vgwort.de\/na\/afda7a082eaf42a38ee37464f509922c\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Sie programmieren viel unter VBA und scrollen fortw&auml;hrend in den Modulfenstern Ihre Augen werden immer schlechter und die Dioptrien der Lesebrille erh&ouml;hen sich Dann wird es m&ouml;glicherweise Zeit, sich mit der Schriftart zu besch&auml;ftigen, die Sie f&uuml;r Ihren Code verwenden. Denn Courier New ist keineswegs das Ma&szlig; aller Dinge, und es gibt zahlreiche Alternativen, deren Erprobung sich lohnen k&ouml;nnte.<\/b><\/p>\n<h2>Schriftarten einstellen<\/h2>\n<p>In der Regel macht man sich beim Programmieren wenig Gedanken &uuml;ber die Gestalt der Entwicklungsumgebung und nimmt die Vorgaben klaglos hin. Schreiben Sie Texte unter Word, so ist das Einstellen einer passenden Schriftart eine Selbstverst&auml;ndlichkeit. Beim Programmieren unter VBA hingegen wird die vorgegebene Schriftart meist unbesehen &uuml;bernommen. Und die h&ouml;rt auf den sch&ouml;nen Namen <b>Courier New<\/b> in der Gr&ouml;&szlig;e 10 Punkt. Nun existiert VBA schon seit zwei Jahrzehnten, ohne dass sich an dieser Tatsache etwas ge&auml;ndert h&auml;tte. Dabei verwenden andere Code-Fenster von Microsoft, wie die des aktuellen <b>Visual Studio<\/b>, die zweifellos g&uuml;nstigere Schriftart <b>Consolas<\/b>. Also k&ouml;nnte man einfach unter VBA ebenfalls diese Schriftart verwenden. Doch Gemach! Es gibt inzwischen noch viele weitere freie Schriftarten, die speziell f&uuml;r das Programmieren entwickelt wurden. Deshalb lohnt sich ein Blick auf diese unbedingt, und wir haben sie mithilfe eines Test-Sets, das Sie in der Beispieldatenbank finden, einer Pr&uuml;fung unterzogen.<\/p>\n<p>Manuell stellen Sie die Schriftart der Code-Fenster unter VBA &uuml;ber das Men&uuml; <b>Extras|Optionen&#8230;|Editorformat<\/b> ein. Im dabei erscheinenden Dialog k&ouml;nnen Sie f&uuml;r verschiedene Schriftstile, die auf der linken Seite aufgelistet sind (siehe Bild 1), die Vorder- und Hintergrundfarbe festlegen, aber auch die Schriftarten samt Schriftgr&ouml;&szlig;e. Zum Ausprobieren verschiedener Schriftarten ist das vor allem deshalb unpraktisch, weil das Kombinationsfeld zur Font-Auswahl nur wenige Zeilen ausklappt. Zudem unterscheidet VBA hier nicht zwischen geeigneten und ungeeigneten Schriftarten. Ungeeignet sind die sogenannten <b>Proportionalen Schriften<\/b>, bei denen jedes Zeichen eine unterschiedliche angepasste Breite einnimmt. Darunter w&uuml;rde die Lesbarkeit erheblich leiden. Der Name einer Schrift wiederum sagt nichts &uuml;ber deren Charakter aus, so dass Sie auf externe Anwendungen angewiesen sind, um &uuml;berhaupt die proportionalen von den nichtproportionalen Schriften unterscheiden zu k&ouml;nnen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/VBAOpts.png\" alt=\"&uuml;ber die Optionen der VBA-Umgebung lassen sich mehrere Schriftarten und Stile einstellen\" width=\"550\" height=\"357,2477\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: &uuml;ber die Optionen der VBA-Umgebung lassen sich mehrere Schriftarten und Stile einstellen<\/span><\/b><\/p>\n<p>Nun gibt es <b>API<\/b>-Routinen, &uuml;ber die man die Schriftarten des Systems durchlaufen und zus&auml;tzlich nach Eigenschaften filtern kann. Nur gibt es leider keine einfache Methode, um eine Schriftart dann auch per VBA zu setzen. Zumindest haben wir keine gefunden. Die Auswahl einer Schriftart &uuml;ber den <b>Optionen<\/b>-Dialog wirkt sich nach Best&auml;tigung &uuml;ber <b>OK<\/b> sofort aus. Programmtechnisch k&ouml;nnen wir hierf&uuml;r keinen Ersatz anbieten, sondern nur einen Workaround, der im Folgenden noch beschrieben wird.<\/p>\n<h2>Einstellung per VBA selbst<\/h2>\n<p>Die Einstellung der Schriftart speichert VBA n&auml;mlich in der Registry ab. Zu finden ist der Eintrag im Zweig<\/p>\n<pre>HKEY_CURRENT_USER\\Software\\Microsoft\\VBA\\7.0\\Common.<\/pre>\n<p>Dort steht f&uuml;r den Schriftartnamen der Schl&uuml;ssel <b>FontFace<\/b> und f&uuml;r die Gr&ouml;&szlig;e der Schl&uuml;ssel <b>FontHeight<\/b>. Da sich der Zweig im User-Bereich befindet, k&ouml;nnen die Werte auch ohne administrative Rechte programmatisch ge&auml;ndert werden. Die schlechte Nachricht ist, dass VBA die Schl&uuml;ssel zur Laufzeit ignoriert und es auch nicht so etwas, wie einen Reload gibt, um es zu zwingen, die Schl&uuml;ssel neu einzulesen. Die einzige M&ouml;glichkeit scheint ein kompletter Neustart von Access oder einer anderen Office-Anwendung zu sein. Der allerdings kann sehr wohl von einer Routine ausgel&ouml;st werden. <\/p>\n<p>Das Setzen der neuen Werte &uuml;bernimmt eine ziemlich einfache Prozedur, die Listing 1 abbildet. Sie &uuml;bergeben ihr als Parameter den Namen der Schriftart, sowie optional ihre Gr&ouml;&szlig;e, die sonst auf 10 Punkt festgelegt wird. Zum Beschreiben der Registry benutzen wir ein Objekt <b>WshShell<\/b>, welches sich in der Bibliothek <b>Windows Script Host Model<\/b> (<b>wshom.ocx<\/b>) verbirgt, die unter Windows immer installiert ist, falls nicht ein allzu sicherheitsbeflissener Administrator sie deaktiviert hat. Diese Bibliothek nehmen Sie in die Verweise des VBA-Projekts auf. Die Methode ist &uuml;brigens unter VBA generell die mit Abstand einfachste, um in die Registry zu schreiben.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>ChangeVBAFont(ByVal FontName<span style=\"color:blue;\"> As String<\/span>, <span style=\"color:blue;\">Optional<\/span> FontSize<span style=\"color:blue;\"> As Long<\/span> = 10)\r\n     <span style=\"color:blue;\">Dim <\/span>oReg<span style=\"color:blue;\"> As <\/span>WshShell\r\n     <span style=\"color:blue;\">Set<\/span> oReg = <span style=\"color:blue;\">New<\/span> WshShell\r\n     oReg.RegWrite \"HKEY_CURRENT_USER\\Software\\Microsoft\\VBA\\7.0\\Common\\FontFace\", FontName\r\n     oReg.RegWrite \"HKEY_CURRENT_USER\\Software\\Microsoft\\VBA\\7.0\\Common\\FontHeight\", FontSize\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: &uuml;ber diese Prozedur l&auml;sst sich eine neue Schriftart f&uuml;r den VBA-Editor einstellen<\/span><\/b><\/p>\n<p>Einmal gesetzt, m&uuml;ssen Sie anschlie&szlig;end Access zu einem Neustart bewegen. Das erledigen Sie etwa mit den folgenden Zeilen:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>sApp<span style=\"color:blue;\"> As String<\/span>\r\n  sApp = \"\"\"\" & SysCmd(acSysCmdAccessDir) & \"msaccess.exe\" & \"\"\"\"\r\nShell sApp & \" \" & \"\"\"\" & CurrentDb.Name & \"\"\"\" & \" \/CMD NoStartDlg\"\r\nApplication.Quit<\/pre>\n<p><b>SysCmd<\/b> ermittelt den Pfad der Access-Applikation. Den Namen der ausf&uuml;hrenden Datei h&auml;ngen Sie an. Der <b>Shell<\/b>-Anweisung &uuml;bergeben Sie anschlie&szlig;end diesen Pfad und zus&auml;tzlich den Dateinamen der aktuellen Datenbank, die sich aus <b>CurrentDb.Name<\/b> ergibt. Den Sinn der angeh&auml;ngten <b>CMD<\/b>-Anweisung werden wir gleich erl&auml;utern. Die Pfade sollten Sie immer in Anf&uuml;hrungszeichen einbinden, damit <b>Shell<\/b> sie etwa bei Leerzeichen im Pfad nicht fehlinterpretiert. Sie starten damit also eine neue Instanz der Datenbank und beenden die aktuelle &uuml;ber <b>Quit<\/b>. Das Ganze erfolgt in der Regel so schnell, dass es kaum wahrnehmbar ist. Allerdings sollten Sie dann in der neuen Instanz auch den gleichen Zustand wiederherstellen, der vor dem Beenden der aktuellen zu sehen war. In der Demo-Anwendung geschieht das &uuml;ber einen Code des Startformulars <b>frmIntro<\/b>. Dort finden sich im Ereignis <b>Beim Laden<\/b> die folgenden Zeilen:<\/p>\n<pre><span style=\"color:blue;\">If <\/span>Command = \"NoStartDlg\"<span style=\"color:blue;\"> Then<\/span>\r\n     DoCmd.Close acForm, Me.Name\r\n     DoCmd.OpenForm \"frmFonts\"\r\n     DoCmd.OpenModule \"mdlFonts\", \"GetFontsAsCollection\"\r\n<span style=\"color:blue;\">End If<\/span><\/pre>\n<p>Ausgewertet wird hier zun&auml;chst die <b>Command<\/b>-Funktion von VBA. Sie gibt einen String aus, der &uuml;ber den Kommandozeilenparameter <b>CMD<\/b> gesetzt werden kann. Normalerweise ist das ein Leer-String. Wir aber haben diesen zuvor in der Prozedur mit dem Wert <b>NoStartDlg<\/b> versehen. Also werden die weiteren Zeilen ausgef&uuml;hrt, das Intro-Formular geschlossen und stattdessen das Formular <b>frmFonts<\/b> geladen und zus&auml;tzlich das Modul <b>mdlFonts<\/b> ge&ouml;ffnet, in dem au&szlig;erdem die Prozedur <b>GetFontsAsCollection<\/b> angesprungen wird. Dies ist bereits ein Vorgriff auf die Funktionalit&auml;t des Formulars <b>frmFonts<\/b>.<\/p>\n<h2>Einstellen der VBA-Schriftart &uuml;ber ein Formular<\/h2>\n<p>Das Formular <b>frmFonts<\/b> &ouml;ffnet sich in der Demo automatisch, nachdem Sie das Intro-Formular schlie&szlig;en. Oder eben, nachdem die vorher beschriebene Prozedur aufgerufen wurde. Dann pr&auml;sentiert es sich wie in Bild 2.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/frmFontsSample.png\" alt=\"Das Formular frmFonts zeigt einen Pseudo-Editor mit einstellbarer Schriftart mit Beispielcode an\" width=\"600\" height=\"758,849\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Das Formular frmFonts zeigt einen Pseudo-Editor mit einstellbarer Schriftart mit Beispielcode an<\/span><\/b><\/p>\n<p>Den gr&ouml;&szlig;ten Teil nimmt die Textbox ein, in der ein Beispiel-Code abgebildet wird. Es handelt sich dabei &uuml;brigens nicht um eine normale Access-Textbox, sondern um ein ActiveX-Steuerelement, die <b>MSForms<\/b>-Variante, welche mehr Steuerungsm&ouml;glichkeiten zul&auml;sst.  Die Schriftart k&ouml;nnen Sie &uuml;ber das Kombinationsfeld oben ebenso &auml;ndern, wie die Schriftgr&ouml;&szlig;e. Statt des Beispiel-Codes k&ouml;nnen Sie &uuml;ber die Optionsgruppe auch alle Zeichen des Zeichensatzes als Block in die Textbox holen (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/frmFontsCharset.png\" alt=\"Alternativ kann im Editorfenster auch der komplette Zeichensatz der Schrift angezeigt werden\" width=\"650\" height=\"264,7808\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Alternativ kann im Editorfenster auch der komplette Zeichensatz der Schrift angezeigt werden<\/span><\/b><\/p>\n<p>Sagt Ihnen der <b>Font<\/b> zu, so legen Sie ihn in der Registry &uuml;ber Klick auf den Button <b>Setzen!<\/b> fest. Access wird dann, wie beschrieben, neu gestartet und das Formular erneut zur Ansicht gebracht. Gleichzeitig wird der VBA-Editor aktiviert und ebenfalls angezeigt, so dass Kontrolle &uuml;ber die neu gesetzte Schriftart besteht. Es h&auml;ngt von Ihrem System ab, wie das abl&auml;uft: Entweder Sie haben zwei Monitore, wobei Access auf dem einen, die VBA-Umgebung auf dem anderen dargestellt wird. Oder Sie haben einen ziemlich gro&szlig;en Monitor, auf dem Sie beides nebeneinander platzieren. Ansonsten &uuml;berdeckt nun VBA das Access-Fenster. Dargestellt wird aber immer das Modul <b>mdlFonts<\/b>, in dem die Prozedur <b>GetFontsAsCollection<\/b> ins Zentrum gebracht ist. Das also ist der Workaround, der leider n&ouml;tig wird, weil wir keine andere Methode fanden, um das Verhalten des <b>Optionen<\/b>-Dialogs nachzustellen.<\/p>\n<p>Wie ist das Formular nun aufgebaut Beteiligt an ihm sind drei weitere Elemente, das Modul <b>mdlFonts<\/b> und die Tabellen <b>tblFonts<\/b>, <b>tblFontsDimensions<\/b>. Die Routinen des Moduls ermitteln &uuml;ber <b>API<\/b>-Funktionen die Schriftarten des Systems und filtern diese nach ihrem Stil, damit nur die f&uuml;r unsere Zwecke ben&ouml;tigten nicht-proportionalen Schriften (<b>Monospace<\/b>) &uuml;brigbleiben.<\/p>\n<p>Diese werden dann in der Tabelle <b>tblFonts<\/b> abgelegt. Im zweiten Schritt errechnen weitere Prozeduren die Ausdehnung der jeweiligen Schrift und speichern Breite (<b>LineWidth<\/b>), wie H&ouml;he (<b>LineHeight<\/b>), einer vorgegebenen Code-Zeile in der Tabelle <b>tblFontDimensions<\/b> ab.<\/p>\n<p>Zus&auml;tzlich wird aus diesen beiden Parametern die von der Zeile eingenommene Fl&auml;che (<b>Area<\/b>) berechnet, damit die Tabelle sp&auml;ter direkt nach dem Raumbedarf der Schrift sortiert werden kann. Die daf&uuml;r herangezogene willk&uuml;rliche Beispiel-Code-Zeile lautet:<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>Declare Function SendMessage Lib \"\"user32\"\" _\r\n     Alias \"\"SendMessageA\"\" (ByVal hwnd<span style=\"color:blue;\"> As Long<\/span>, ByVal wMsg _\r\n    <span style=\"color:blue;\"> As Long<\/span>, ByVal wParam<span style=\"color:blue;\"> As Long<\/span>, lParam<span style=\"color:blue;\"> As Long<\/span>)<span style=\"color:blue;\"> As Long<\/span><\/pre>\n<p><!--30percent--><\/p>\n<p>Die beiden Tabellen sind 1:n miteinander verkn&uuml;pft, weil zu einer Schriftart jeweils mehrere Gr&ouml;&szlig;en berechnet werden. Die zweite dient dann als Unterdatenblatt f&uuml;r die erste &#8211; siehe Bild 4. <b>FontSize<\/b> ist die f&uuml;r die Schrift eingestellt Gr&ouml;&szlig;e in Punkt. Die anderen Angaben sind Pixel-Gr&ouml;&szlig;en.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/tblFonts.png\" alt=\"In der Tabelle tblFonts finden sich alle installierten Monospace-Schriften mit ihren Abmessungen\" width=\"550\" height=\"645,3875\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: In der Tabelle tblFonts finden sich alle installierten Monospace-Schriften mit ihren Abmessungen<\/span><\/b><\/p>\n<h2>Schriftgr&ouml;&szlig;en<\/h2>\n<p>Aus den Tabellen geht, wie Sie sehen k&ouml;nnen, hervor, dass die Punkt-Gr&ouml;&szlig;en keineswegs unmittelbar mit den resultierenden Pixel-Gr&ouml;&szlig;en korrelieren. Eine 14-Punkt-Schrift etwa ist meist mehr, als doppelt so hoch, wie eine 7-Punkt-Schrift. Gleiches gilt f&uuml;r die horizontale Ausdehnung. Hier besteht kein linearer Zusammenhang und es ist das Geheimnis eines jeden Fonts, wie genau er gerendert wird.<\/p>\n<p>Doch wozu sind all diese Nachforschungen gut Einmal wird deutlich, dass verschiedene Schriftarten in der gleichen Punkt-Gr&ouml;&szlig;e reell zu unterschiedlichen Zeilenh&ouml;hen und -breiten f&uuml;hren. Um also die Lesbarkeit eines Fonts mit der eines anderen vergleichen zu k&ouml;nnen, m&uuml;ssen unter Umst&auml;nden abweichende Font-Gr&ouml;&szlig;en verwendet werden. Aus der Abbildung k&ouml;nnen Sie ablesen, dass etwa <b>Liberation Mono<\/b> in der Gr&ouml;&szlig;e 8 Punkt mit 12 Pixeln die gleiche H&ouml;he besitzt, wie <b>Lucida Console<\/b> in 9 Punkt. (Das Unterdatenblatt ist hier &uuml;brigens nach <b>LineWidth<\/b> absteigend sortiert.) Folglich sollte ein visueller Vergleich zwischen beiden Schriftarten einmal mit <b>8<\/b> Punkt, einmal mit <b>9<\/b> Punkt erfolgen. <\/p>\n<p>Weiter l&auml;sst sich aus <b>LineWidth<\/b> unmittelbar ablesen, wie viele Zeichen sich im Modulfenster darstellen lassen. Sicher ist in Ihrem Interesse, dass m&ouml;glichst viele in ihren Editor passen und sie auch lange Code-Zeilen ohne horizontales Scrollen &uuml;berblicken k&ouml;nnen. Aus der Abbildung allerdings ist die Analyse zun&auml;chst nicht ersichtlich, da hier alle drei Schriftarten dieselbe horizontale Ausdehnung aufweisen.<\/p>\n<p>Deshalb verwenden Sie die Abfragen <b>qry_LineWidth<\/b> und <b>qry_LineHeight<\/b> in der Demo-Datenbank, die alle Schriftarten und alle Gr&ouml;&szlig;en aufsteigend nach Zeilenh&ouml;he und -breite ausgeben. Filtern Sie das Ergebnis etwa nach allen Schriften, die in einer Zeilenh&ouml;he von 12 Pixel resultieren, so finden Sie Schriften in der Spanne von <b>7<\/b> bis <b>11<\/b> Punkt vor! Filtern Sie nach der festen Breite von <b>1099<\/b> Pixel, so stellen sich gar Fonts in der Gr&ouml;&szlig;e zwischen <b>7<\/b> und <b>13<\/b> Punkt ein. Es gibt also extreme Unterschiede in der Laufweite der einzelnen Fonts. <\/p>\n<p>Noch aussagekr&auml;ftiger w&auml;re eigentlich die Eigenschaft <b>Area<\/b>, weil diese Auskunft dar&uuml;ber gibt, wie viele Zeichen insgesamt in das Rechteck eines Code-Fensters passen. Die Abfrage <b>qry_Area<\/b> gibt das aus, wobei hier zur leichteren Filterung die Werte f&uuml;r Area gerundet gruppiert sind. Filtern Sie diese Abfrage in der Datenblattansicht etwa nach 10 Punkt, so bekommen Sie f&uuml;r die Schrift <b>ProggyTinyTT<\/b> eine Zeilenfl&auml;che von <b>6200<\/b> Pixeln heraus, f&uuml;r <b>Source Code Pro ExtraLight<\/b> eine von <b>21200<\/b> Pixeln. Das bedeutet, dass sich im Code-Fenster mit der ersten Schrift &uuml;ber dreimal mehr Zeichen darstellen lassen, wie mit der zweiten! Aus der Spalte <b>LineHeight<\/b> der Abfrage geht allerdings hervor, dass die erste Schriftart das vornehmlich durch eine sehr geringe H&ouml;he von <b>9<\/b> Pixeln erreicht, w&auml;hrend die zweite eine von <b>17<\/b> aufweist (siehe Bild 5). Beide lassen dich demzufolge nicht direkt miteinander vergleichen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/qry_Area.png\" alt=\"Ergebnis der nach FontSize 10 gefilterten Abfrage qry_Area\" width=\"425\" height=\"512,341\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Ergebnis der nach FontSize 10 gefilterten Abfrage qry_Area<\/span><\/b><\/p>\n<p>Nat&uuml;rlich k&ouml;nnen Sie die Abfrage weiter filtern und etwa nur Zeilenh&ouml;hen von <b>12<\/b> Pixeln zulassen, sowie Font-Gr&ouml;&szlig;en von <b>9<\/b> bis <b>11<\/b>. Damit w&auml;ren die Schriften tats&auml;chlich vergleichbar. Mit <b>Terminal<\/b> bekommen Sie dann eine Fl&auml;che von <b>8300<\/b> Pixeln heraus, mit <b>ProggyCleanTT<\/b> eine von <b>11600<\/b> Pixeln. Also scheint <b>Terminal<\/b> der Favorit zu sein<\/p>\n<p>Eindeutig nein! Denn f&uuml;r die Beurteilung einer Schriftart sind weit mehr Faktoren zu ber&uuml;cksichtigen, als allein die Laufweite und die Zeilenh&ouml;he. Die Lesbarkeit h&auml;ngt stark von der Gestalt der Zeichen ab. Zudem ist es auch Geschmackssache, ob Sie <b>Serifen<\/b>&#8211; oder <b>serifenlose<\/b> Schriften bevorzugen. Auch das <b>Antialiasing<\/b> spielt eine gewichtige Rolle. Auf diese Faktoren kommen wir sp&auml;ter zu sprechen. Doch zur&uuml;ck zum Formular und seinen Komponenten!<\/p>\n<h2>Schriften enumerieren und analysieren<\/h2>\n<p>Die Prozeduren des Moduls <b>mdlFonts<\/b> stellen wir hier nicht komplett in Listings dar, denn diesen Code werden Sie eher selten in Ihren eigenen Datenbanken ben&ouml;tigen. Deshalb handeln wir die Sache lediglich in Stichpunkten ab.<\/p>\n<p>Die f&uuml;r das Auslisten der installierten Schriften verantwortliche Funktion ist <b>GetFontsAsCollection<\/b>. Sie bedient sich der <b>API<\/b>-Funktion <b>EnumFontFamilies<\/b>, welche ihrerseits schrittweise die <b>Callback<\/b>-Funktion <b>EnumFontsProc<\/b> aufruft.<\/p>\n<p>Die ermittelten Schriftnamen sammeln sich in der <b>Collection<\/b> <b>colFonts<\/b>. Damit nur nichtproportionale Schriften ins Ergebnis gelangen, errechnet eine weitere Hilfsfunktion <b>IsNonProportional<\/b>, ob bestimmte Schriftparameter der Struktur <b>NEWTEXTMETRIC<\/b> zutreffen. Weitere Prozeduren helfen bei der Analyse der Schriftparameter.<\/p>\n<p>Die Funktionen sind umfangreicher, als es f&uuml;r unsere Zwecke n&ouml;tig w&auml;re. Aber vielleicht ben&ouml;tigen Sie das Modul einmal f&uuml;r ganz andere Aufgaben, wie das Auflisten von Serifenschriften in einem Kombinationsfeld, und dann k&ouml;nnten Sie dies ebenfalls &uuml;ber diese Funktionen erreichen.<\/p>\n<p>Dann m&uuml;ssen noch die Abmessungen der Schriften ermittelt werden. Das tut die Prozedur <b>MakeFontDims<\/b>, welche hier ausnahmsweise nicht auf <b>API<\/b>-Funktionen zur&uuml;ckgreift, sondern auf das versteckte <b>WizHook<\/b>-Objekt von Access. Dessen Methode <b>TwipsFromFont<\/b> kann zu einer als String &uuml;bergebenen Schriftart, deren Gr&ouml;&szlig;e und Stil, sowie einem Text (<b>sLine<\/b>) die Ausdehnung errechnen. In der Routine werden alle in der Tabelle <b>tblFonts<\/b> abgespeicherten Schriften mit Gr&ouml;&szlig;en von <b>7<\/b> bis <b>14<\/b> Punkt in einer Schleife durchlaufen, berechnet, und die Ergebnisse in der Tabelle <b>tblFontDimensions<\/b> abgelegt.<\/p>\n<p>Nachdem die Tabellen gef&uuml;llt sind, kann das Formular sie weiterverwenden. Das Kombinationsfeld <b>cbFont<\/b> zur Schriftenauswahl im Formular basiert n&auml;mlich direkt auf der Tabelle <b>tblFonts<\/b>. In ihm finden sich folglich nur die installierten <b>Monospace<\/b>-Schriftarten alphabetisch aufgelistet. Damit das Feld mit der Schrift voreingestellt ist, die aktuell f&uuml;r den VBA-Editor gilt, liest die Ereignisprozedur <b>Beim Laden<\/b> sie aus der Registry aus:<\/p>\n<pre><span style=\"color:blue;\">Set<\/span> oReg = <span style=\"color:blue;\">New<\/span> WshShell \r\nMe!cbFont.Value = oReg.RegRead( _\r\n     \"HKEY_CURRENT_USER\\Software\\Microsoft\\VBA\\7.0\\\" & _\r\n     \"Common\\FontFace\")\r\nMe!cbSize.Value = oReg.RegRead( _\r\n     \"HKEY_CURRENT_USER\\Software\\Microsoft\\VBA\\7.0\\\" & _\r\n     \"Common\\FontHeight\")<\/pre>\n<p>Beim &auml;ndern des Fonts in der Combobox weist diese ihn samt Gr&ouml;&szlig;e der Textbox zu. Das erlaubt nun die visuelle Kontrolle &uuml;ber die Schriften.<\/p>\n<p>Experimentieren Sie einfach etwas mit den verf&uuml;gbaren Schriften herum und w&auml;hlen Sie eine, die Ihnen gut lesbar und gleichzeitig komprimiert erscheint. Klicken Sie dann auf den Button <b>Setzen!<\/b>, um die Schrift dem VBA-Editor zuzuweisen. Das f&uuml;hrt, wie weiter oben beschrieben, zum &auml;ndern der Schl&uuml;ssel in der Registry und zum Neustart von Access. Das sich &uuml;ber das Formular zus&auml;tzlich &ouml;ffnende Modulfenster wird dann mittels <b>API<\/b>-Funktionen in den Vordergrund gesetzt. Falls Sie interessiert, woher der Beispiel-Code der Textbox im Formular stammt, schauen Sie sich folgende Zeile an:<\/p>\n<pre>sSample = VBE.ActiveVBProject. _\r\n      VBComponents(\"mdlFonts\").CodeModule.Lines(1, 300)<\/pre>\n<h2>Programmierschriften<\/h2>\n<p>Nachdem das Test-Set steht und wir bereits einiges zu verschiedenen Schriftarten und deren Parameter erl&auml;uterten, liegt der Fokus auf den verf&uuml;gbaren Schriften, die wir in Augenschein nehmen m&ouml;chten. Tats&auml;chlich finden Sie im Netz eine ganze Menge Seiten, die sich nur dem einen Thema widmen, welches denn nun der optimale Font f&uuml;r Code-Editoren sein soll.<\/p>\n<p>Einig ist man sich nur, dass <b>Courier New<\/b> das eben nicht ist. Es gibt gar Abstimmungen dar&uuml;ber, welches der geeignete oder beliebteste ist. Ein eindeutiger Spitzenreiter ist aber nicht erkennbar. Hier gibt es offenbar ganz individuelle Vorlieben, deren Ursprung nicht erkennbar ist.<\/p>\n<p>Dennoch gibt es &uuml;bereinkunft dar&uuml;ber, welche Eigenschaften grunds&auml;tzlich w&uuml;nschenswert seien. Eine wichtige ist die Unterscheidbarkeit von Zeichen. H&auml;ufig etwa ist die Zahl <b>0<\/b> nicht von einem <b>O<\/b> zu unterscheiden. Sie verstehen nicht, was gemeint ist Nun, der <b>Helvetica<\/b>-Font, in dem Beitr&auml;ge in <b>Access-im-Unternehmen<\/b> verfasst sind, weist leider ebenfalls diesen Nachteil auf.<\/p>\n<p>Es gibt keinen Unterschied zwischen dem Buchstaben <b>O<\/b> und dem Zahlzeichen <b>0<\/b>. Auch f&uuml;r <b>Courier New<\/b> ist dieser Umstand festzustellen. Bei Programmierschriften w&auml;re dies aber w&uuml;nschenswert, weshalb die meisten bei der Zahl <b>0<\/b> auch einen Schr&auml;gstrich integrieren. &auml;hnliches gilt f&uuml;r die die Zeichen <b>1<\/b>, <b>l<\/b> und <b>I<\/b>.<\/p>\n<p>H&auml;ufig lassen sich auch diese nicht klar unterscheiden. Ich spreche hier von <b>l<\/b>&auml;ssig, <b>I<\/b>ntegration und <b>1<\/b>. In normalen Texten spielt das keine Rolle, wie Sie sehen, da W&ouml;rter immer aus dem Kontext hervorgehen, aber Programm-Code kann doch teilweise recht kryptische Variablen- oder Funktionsnamen enthalten, wo dann diese Unterscheidbarkeit wichtig ist. <\/p>\n<p>Testen Sie also das Formular zun&auml;chst mit der Option <b>Zeichensatz<\/b> und checken Sie die verschiedenen Schriften darauf ab, ob es Zeichen gibt, die gleichartig gerendert sind. Solche Schriften bekommen schon einmal Minuspunkte verpasst.<\/p>\n<p>Ein weiteres Problem ist das <b>Antialiasing<\/b> beim Rendern. Es gibt Schriften, die speziell f&uuml;r <b>Clear Type<\/b> und LCD-Monitore entwickelt wurden. In modernen Editoren k&ouml;nnen so auch ziemlich kleine Schriftgr&ouml;&szlig;en gut wiedergegeben werden, beziehungsweise es entstehen klare Kanten ohne Treppchenbildung. Nur sind leider VBA-Fenster keine modernen Editoren.<\/p>\n<p>Das spezielle <b>Antialiasing<\/b> f&uuml;hrt hier im Gegenteil zu schlechterer Lesbarkeit. Im Testformular k&ouml;nnen Sie das ebenfalls feststellen, weil auch die <b>MSForms<\/b>-Textbox &auml;hnliche Nachteile aufweist. Die Darstellung sieht dann &auml;hnlich aus, wie in Bild 6. Hier verwaschen die Zeichen und das Gesamtbild wird unruhig und fleckig. Testen Sie also die Schriften auch nach diesem Kriterium. Alle, die <b>Clear Type<\/b>-Probleme zeigen, k&ouml;nnen Sie getrost in die Ecke stellen. &uuml;brigens ist das auch mit ein Grund daf&uuml;r, dass im Netz manche Schriften favorisiert sind, die sich unter VBA recht schlecht machen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/ClearTypeBad.png\" alt=\"Eine f&uuml;r ClearType optimierte Schrift im VBA-Modulfenster\" width=\"425\" height=\"177,907\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Eine f&uuml;r ClearType optimierte Schrift im VBA-Modulfenster<\/span><\/b><\/p>\n<p>Bei der Schriftgr&ouml;&szlig;e oder eher der reellen Zeichengr&ouml;&szlig;e (<b>LineHeight<\/b>) gelangen wir dann schon zu individuellen Unterschieden. J&uuml;ngere Menschen etwa neigen eher zu kleinen Fonts, &auml;ltere auch mit Lesebrille zu gr&ouml;&szlig;eren.<\/p>\n<p>Vielleicht ist das auch ein wahrnehmungsphysiologisches Ph&auml;nomen. Je fixer die optische Wahrnehmung, desto weniger Probleme macht eine h&ouml;here Zeichendichte. Doch nat&uuml;rlich h&auml;ngt es schlicht auch vom Monitor ab. Ich arbeite hier etwa an einem 43-Zoll-Monitor, so dass ein Modulfester auf eine Gr&ouml;&szlig;e gezogen werden kann, die auch 11- oder 12-Punkt-Schriften erlaubt.<\/p>\n<p>Auf einem 14-Zoll-Laptop w&auml;re das unsinnig, weil dann Code-Zeilen h&auml;ufig &uuml;ber den rechten Rand ragen und horizontales Scrollen die Folge w&auml;re.<\/p>\n<p>F&uuml;r beide F&auml;lle werden Sie wohl einen unterschiedlichen Font nehmen m&uuml;ssen. Und diese Aussage bezieht sich keineswegs nur auf die Schriftgr&ouml;&szlig;e, denn manche Fonts wirken in kleiner Gr&ouml;&szlig;e ganz anders, als in gr&ouml;&szlig;erer. F&uuml;r kleine Gr&ouml;&szlig;en eigenen sich andere Schriftarten, als f&uuml;r gro&szlig;e. Das k&ouml;nnen Sie jedoch mit dem Testformular selbst einfach ermitteln.<\/p>\n<p>Trotzdem gibt es nennenswerte Unterschiede bei der Laufweite der Schriften. Um das zu verdeutlichen, haben wir Screenshots eines VBA-Moduls in verschiedenen Schriften angefertigt und per Bildverarbeitung kombiniert. Das erste Beispiel finden Sie in Bild 7.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/ttf2_1.png\" alt=\"Verschiedene Monospace-Schriftarten mit demselben Text im VBA-Modulfenster zeigen abweichende Ausdehnungen\" width=\"650\" height=\"799,483\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Verschiedene Monospace-Schriftarten mit demselben Text im VBA-Modulfenster zeigen abweichende Ausdehnungen<\/span><\/b><\/p>\n<p>Bild 8 liefert weitere Beispiele. Verwendet wurde jeweils eine Schriftgr&ouml;&szlig;e, die ungef&auml;hr zur gleichen Zeilenh&ouml;he f&uuml;hrt &#8211; meist 10 Punkt. Die farblichen Hervorhebungen verlangen indessen nach Erl&auml;uterung. Der Ausdruck <b>Alias<\/b> ist in allen Beispielen rot markiert. So ist auf den ersten Blick zu erkennen, welche Schriften sich horizontal mehr ausdehnen und mithin weniger Zeichen in Ihrem Code-Fenster unterbringen k&ouml;nnen. Bei <b>Courier New<\/b> etwa befindet sich das <b>Alias<\/b> deutlich weiter rechts, als bei <b>Liberation Mono<\/b>. Gut machen sich hier auch <b>Aerial Mono<\/b>, <b>Inconsolata g<\/b>, <b>Monaco<\/b> und <b>Ubuntu Mono<\/b>. Letzterer ist &uuml;brigens unter <b>Linux<\/b> die voreingestellte Code-Schriftart. Auffallen k&ouml;nnte Ihnen auch, dass fast alle Programmierschriften serifenlos sind, weil Serifen zwar die horizontale Lesbarkeit erh&ouml;hen, die Identifikation einzelner Zeichen aber behindern. Code ist eben etwas anderes, als normaler Text. Ausnahmen machen hier nur <b>Courier New<\/b> und teilweise <b>PT Mono<\/b>. Letzterer ist eine interessante Mischung aus Zeichen mit Serifen und solchen ohne. Allerdings ist das bei anderen Fonts minimal auch der Fall. Die Buchstaben <b>l<\/b> und <b>i<\/b> weisen meist Serifen auf, um sie von <b>1<\/b> oder <b>I<\/b> unterscheiden zu k&ouml;nnen. <b>PT Mono<\/b> ist in dieser Hinsicht ohnehin speziell, weil er Zeichen mit Pseudoserifen enth&auml;lt, wie das <b>t<\/b> oder <b>L<\/b>. Das w&auml;re eigentlich mein Lieblings-Font, w&auml;re da nicht seine leider gr&ouml;&szlig;ere Ausdehnung.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/ttf2_2.png\" alt=\"Das ist der zweite Teil der 10-Punkt-Monospace-Schriftarten im VBA-Modulfenster mit Hervorhebung der Laufweite der Fonts\" width=\"650\" height=\"775,129\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Das ist der zweite Teil der 10-Punkt-Monospace-Schriftarten im VBA-Modulfenster mit Hervorhebung der Laufweite der Fonts<\/span><\/b><\/p>\n<p>Die wird zus&auml;tzlich durch die blauen Rahmen deutlich. Die sind n&auml;mlich in den Abbildungen immer gleich gro&szlig; und zeigen so, welche Fonts mehr vertikalen Raum fordern, als andere. Die H&ouml;he der blauen Rahmen leitet sich von der kleinsten vertikalen Ausdehnung ab, die <b>Liberation Mono<\/b> und <b>Inconsolata g<\/b> aufweisen. Schlecht sieht es in dieser Hinsicht etwa bei <b>Consolas<\/b> oder <b>Cousine<\/b> aus, die sich ansonsten ganz gut machen. <\/p>\n<p>Interessant ist auch die Helligkeit, die eine Schriftart erzeugt. In Bild 9 wurde &uuml;ber die Code-Bl&ouml;cke der Schriftarten ein grauer Layer gelegt, dessen Helligkeitswert sich aus dem Durchschnitt der Pixel des Rechtecks ergibt (Photoshop!). <b>Liberation Mono<\/b> etwa ist recht dunkel, <b>Consolas<\/b> eher hell. Das ergibt sich zum einen aus dem Durchschuss der Zeilen, dem Abstand der Zeichen und schlie&szlig;lich der Dicke der Zeichenlinien.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/ttf4.png\" alt=\"Die auf ein Bild gerenderten Schriften verdeutlichen die Pixel-Dichte und damit die Helligkeit der verschiedenen Fonts\" width=\"425\" height=\"1043,737\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Die auf ein Bild gerenderten Schriften verdeutlichen die Pixel-Dichte und damit die Helligkeit der verschiedenen Fonts<\/span><\/b><\/p>\n<p>Ein Blick auf die vorigen Abbildungen zeigt, dass etwa die Zeichen von <b>Inconsolata<\/b> deutlich d&uuml;nner ausfallen, als die von <b>Hack<\/b>. Sie ben&ouml;tigen allerdings einen umfangreicheren Code-Block, um das besser beurteilen zu k&ouml;nnen. Grunds&auml;tzlich aber erscheinen mir dunklere Fonts geeigneter, da VBA-Fenster bei helleren mit geringer Zeichendicke Probleme durch das schlechte Antialiasing machen.<\/p>\n<p>Solche Messwerte sind aber nicht das Ma&szlig; aller Dinge. Der Stil einer Schrift ist immer noch entscheidend. Ob die Kanten abgerundet sind, oder nicht, ob B&ouml;gen rund oder winklig ausfallen, ob Kleinbuchstaben im Verh&auml;ltnis zu Gro&szlig;buchstaben vergleichsweise gro&szlig; daherkommen, f&uuml;hrt etwa bei verschiedenen Personen zu unterschiedlicher Beurteilung. Deshalb l&auml;sst sich kein allgemeing&uuml;ltiges Optimum angeben. Sie allein entscheiden!<\/p>\n<h2>Service<\/h2>\n<p>Zu erw&auml;hnen w&auml;re noch, dass die dargestellten Fonts noch keinesfalls alle sind, die wir getestet haben. So gibt es etwa noch die Reihe <b>Proggy<\/b> oder weitere Varianten von <b>Source Code<\/b>. Diese Fonts m&uuml;ssen Sie sich indessen nicht selbst besorgen. Im Verzeichnis der Beispieldatenbank finden Sie noch das Archiv f<b>onts.zip<\/b>, in dem alle g&auml;ngigen Programmierschriftarten versammelt sind, 41 an der Zahl. Nach dem Entpacken in ein Verzeichnis Ihrer Wahl markieren Sie alle Dateien und rechtsklicken darauf.<\/p>\n<p>Mit <b>Installieren<\/b> im Kontextmen&uuml; haben Sie dann alle im System. Alternativ ziehen Sie alle Dateien in den <b>Fonts<\/b>-Ordner von Windows. Es fragt Sie dann automatisch, ob Sie diese Schriften installieren oder bereits vorhandene ersetzen m&ouml;chten. Diese Schriften sind alle mehr oder weniger lizenzfrei.<\/p>\n<p>Meinen pers&ouml;nlichen Spitzenreiter aber kann ich Ihnen einfach nicht vorenthalten. Ich verwende <b>Liberation Mono<\/b> in der Gr&ouml;&szlig;e 10 Punkt (Bild 10). Einige Zeit war tats&auml;chlich <b>Lucida Console <\/b>der Favorit, w&auml;hrend <b>Courier New<\/b> schon l&auml;nger &uuml;ber Bord geworfen wurde. Das hat sich bei der Besch&auml;ftigung mit dem Thema und der Recherche im Netz nun jedoch ge&auml;ndert.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_02\/VBA_Sascha.png\" alt=\"Dies ist mein bevorzugter Schriftstil f&uuml;r VBA-Module: Liberation Mono in der Gr&ouml;&szlig;e 10-Punkt\" width=\"600\" height=\"342,7215\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Dies ist mein bevorzugter Schriftstil f&uuml;r VBA-Module: Liberation Mono in der Gr&ouml;&szlig;e 10-Punkt<\/span><\/b><\/p>\n<p>Der Screenshot ist zudem eine Anregung, sich auch mit den anderen Optionen der Code-Schriften zu besch&auml;ftigen. Die gr&uuml;ne Hinterlegung der Kommentare etwa l&auml;sst diese schneller auffinden, auch wenn deren <b>Impact<\/b> nun eventuell etwas st&ouml;rt. Leider ist man bei den Farben auf genau die <b>16<\/b> festgelegt, die einem der <b>Optionen<\/b>-Dialog anbietet. Das l&auml;sst sich auch &uuml;ber die Registry nicht &auml;ndern, denn die Farben sind dort nicht etwa als <b>RGB<\/b>-Werte abgelegt, sondern nur als Indizes auf eine interne Farbtabelle (Schl&uuml;ssel <b>CodeBackColors<\/b>, <b>CodeForeColors<\/b>).<\/p>\n<p>Schade, denn einige etwas dezentere Farben w&auml;ren hier brauchbarer f&uuml;r Hintergr&uuml;nde.<\/p>\n<h2>Zusammengefasst<\/h2>\n<p>Wenn Sie zu denen geh&ouml;ren, die viel unter VBA programmieren, dann ist der VBA-Editor Ihr t&auml;gliches Arbeitswerkzeug. Und dann sollte es nicht egal sein, wie komfortabel Sie mit diesem Werkzeug arbeiten k&ouml;nnen. Mit einer geeigneten Schrift erleichtern Sie sich dabei das Leben und die Effektivit&auml;t.<\/p>\n<p>Mit der vorgestellten Datenbank k&ouml;nnen Sie Ihren pers&ouml;nlichen Favoriten ermitteln. Sie erleichtert &uuml;berdies das Auffinden der passenden installierten <b>Monospace<\/b>-Schriften. Die in Tabellen abgespeicherten Kennzahlen der Schriften k&ouml;nnen Sie f&uuml;r Ihre Entscheidung zus&auml;tzlich ins Kalk&uuml;l ziehen. Und sollten Sie sich noch weitergehend mit der Materie besch&auml;ftigen wollen, so finden Sie im Netz unter dem Suchwort <b>programmers fonts<\/b> noch eine Vielzahl von Anregungen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>VBAFonts.zip<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/F4C2C119-C440-404B-B597-309F813AEB7B\/aiu_1121.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sie programmieren viel unter VBA und scrollen fortw&auml;hrend in den Modulfenstern Ihre Augen werden immer schlechter und die Dioptrien der Lesebrille erh&ouml;hen sich Dann wird es m&ouml;glicherweise Zeit, sich mit der Schriftart zu besch&auml;ftigen, die Sie f&uuml;r Ihren Code verwenden. Denn Courier New ist keineswegs das Ma&szlig; aller Dinge, und es gibt zahlreiche Alternativen, deren Erprobung sich lohnen k&ouml;nnte.<\/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":[66022018,662018,44000028],"tags":[],"class_list":["post-55001121","post","type-post","status-publish","format-standard","hentry","category-66022018","category-662018","category-Ergonomie_und_Benutzeroberflaeche"],"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>Schriftarten im VBA-Editor - 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\/Schriftarten_im_VBAEditor\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Schriftarten im VBA-Editor\" \/>\n<meta property=\"og:description\" content=\"Sie programmieren viel unter VBA und scrollen fortw&auml;hrend in den Modulfenstern Ihre Augen werden immer schlechter und die Dioptrien der Lesebrille erh&ouml;hen sich Dann wird es m&ouml;glicherweise Zeit, sich mit der Schriftart zu besch&auml;ftigen, die Sie f&uuml;r Ihren Code verwenden. Denn Courier New ist keineswegs das Ma&szlig; aller Dinge, und es gibt zahlreiche Alternativen, deren Erprobung sich lohnen k&ouml;nnte.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-13T21:18:36+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg06.met.vgwort.de\/na\/afda7a082eaf42a38ee37464f509922c\" \/>\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=\"22\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Schriftarten im VBA-Editor\",\"datePublished\":\"2020-05-13T21:18:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/\"},\"wordCount\":4308,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/afda7a082eaf42a38ee37464f509922c\",\"articleSection\":[\"2\\\/2018\",\"2018\",\"Ergonomie und Benutzeroberfl\u00e4che\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/\",\"name\":\"Schriftarten im VBA-Editor - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/afda7a082eaf42a38ee37464f509922c\",\"datePublished\":\"2020-05-13T21:18:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/afda7a082eaf42a38ee37464f509922c\",\"contentUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/afda7a082eaf42a38ee37464f509922c\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schriftarten_im_VBAEditor\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Schriftarten im VBA-Editor\"}]},{\"@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":"Schriftarten im VBA-Editor - 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\/Schriftarten_im_VBAEditor\/","og_locale":"de_DE","og_type":"article","og_title":"Schriftarten im VBA-Editor","og_description":"Sie programmieren viel unter VBA und scrollen fortw&auml;hrend in den Modulfenstern Ihre Augen werden immer schlechter und die Dioptrien der Lesebrille erh&ouml;hen sich Dann wird es m&ouml;glicherweise Zeit, sich mit der Schriftart zu besch&auml;ftigen, die Sie f&uuml;r Ihren Code verwenden. Denn Courier New ist keineswegs das Ma&szlig; aller Dinge, und es gibt zahlreiche Alternativen, deren Erprobung sich lohnen k&ouml;nnte.","og_url":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-13T21:18:36+00:00","og_image":[{"url":"http:\/\/vg06.met.vgwort.de\/na\/afda7a082eaf42a38ee37464f509922c","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"22\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Schriftarten im VBA-Editor","datePublished":"2020-05-13T21:18:36+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/"},"wordCount":4308,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/afda7a082eaf42a38ee37464f509922c","articleSection":["2\/2018","2018","Ergonomie und Benutzeroberfl\u00e4che"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/","url":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/","name":"Schriftarten im VBA-Editor - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/afda7a082eaf42a38ee37464f509922c","datePublished":"2020-05-13T21:18:36+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/#primaryimage","url":"http:\/\/vg06.met.vgwort.de\/na\/afda7a082eaf42a38ee37464f509922c","contentUrl":"http:\/\/vg06.met.vgwort.de\/na\/afda7a082eaf42a38ee37464f509922c"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Schriftarten_im_VBAEditor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Schriftarten im VBA-Editor"}]},{"@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\/55001121","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=55001121"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001121\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}