Moin. Ich bin Sönke Schäfer, der Datenschäfer. Heute geht’s um ein Thema, das in vielen Access-Anwendungen untergeht: Schriftarten. Genauer gesagt: Wie Du in VBA die Schriftarten dynamisch setzt – etwa für barrierefreie Designs, hohe Lesbarkeit oder einfach bessere Optik. Klingt erstmal nach Designkram – ist aber Technik. Und wichtig.

Warum überhaupt dynamisch?

Weil es Situationen gibt, in denen der Nutzer entscheiden soll, wie groß oder gut lesbar etwas ist. Oder weil Du je nach Benutzerrolle, Zoom oder Gerät anpassen willst.

  • Barrierefreiheit – z. B. größere Schrift für Sehbehinderte
  • Corporate Design – je nach Mandant andere Fonts
  • Geräteanpassung – z. B. für Touch-Geräte größere Buttons

Welche Objekte lassen sich überhaupt umstellen?

Im Grunde: Alle Steuerelemente mit Text. Also:

  • Labels
  • Textfelder
  • Buttons
  • Reiter, Kombis, Listen

Die meisten haben die Eigenschaften:

  • .FontName
  • .FontSize
  • .FontBold usw.

Schriftart global setzen – so geht’s

Du willst nicht jedes Element einzeln anfassen? Dann hier ein Muster, das über alle Controls in einem Formular läuft und die Schriftart setzt:

Sub SetzeSchriftart(frm As Form, fontName As String, fontSize As Integer)
    Dim ctl As Control
    For Each ctl In frm.Controls
        On Error Resume Next ' Falls Control keine Font-Eigenschaft hat
        ctl.FontName = fontName
        ctl.FontSize = fontSize
        On Error GoTo 0
    Next ctl
End Sub

Aufruf im Formular z. B. so:

Private Sub Form_Load()
    SetzeSchriftart Me, "Segoe UI", 11
End Sub

Benutzer wählen lassen – z. B. über eine Einstellung

Du kannst die gewünschte Schriftart in einer Tabelle oder Registry speichern, z. B.:

Dim userFont As String
userFont = Dlookup("Wert", "tblEinstellungen", "Schlüssel = 'SystemFont'")
SetzeSchriftart Me, userFont, 11

Damit kannst Du später per Formular-Option z. B. zwischen „Segoe UI“, „OpenDyslexic“ oder „Arial“ umschalten lassen.

Bonus: Nur bestimmte Steuerelemente anpassen

Du willst nicht alles ändern? Kein Problem:

For Each ctl In frm.Controls
    If ctl.ControlType = acLabel Or ctl.ControlType = acTextBox Then
        ctl.FontName = fontName
        ctl.FontSize = fontSize
    End If
Next ctl

Barrierefreiheit mit Dyslexie-freundlicher Schrift

Die Schriftart OpenDyslexic ist ein guter Einstieg. Die musst Du allerdings vorher auf dem System installieren. Danach kannst Du sie wie jede andere Schrift ansprechen.

SetzeSchriftart Me, "OpenDyslexic", 12

Und wenn die Schrift nicht vorhanden ist? Dann eine Fallback-Lösung einbauen:

On Error Resume Next
ctl.FontName = "OpenDyslexic"
If ctl.FontName <> "OpenDyslexic" Then ctl.FontName = "Arial"
On Error GoTo 0

Mein Fazit als Datenschäfer

Ja, Schriftarten wirken erstmal wie Deko. Aber wenn Du barrierefrei arbeiten willst oder mehreren Usern eine saubere Darstellung bieten willst, gehört das dazu. Und es zeigt: Du meinst’s ernst mit Usability. Ich helf Dir gern, wenn’s komplexer wird – auch mit SQL, Access und allem, was sonst noch Daten frisst.

Datenschäfer: Analyse, Auswertung und Automatisierung für KMU im Norden 🐑

Categories:

Tags:

Comments are closed