Schriftart im System per VBA ermitteln
Schritt-für-Schritt-Anleitung
Um zu überprüfen, ob eine Schriftart auf dem System verfügbar ist, kannst Du den folgenden VBA-Code verwenden. Dieser Code enthält eine Funktion, die den Namen der Schriftart als Parameter akzeptiert und zurückgibt, ob die Schriftart installiert ist oder nicht.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" klickst und "Einfügen" > "Modul" auswählst.
- Kopiere den folgenden Code in das Modul:
Function FontIsInstalled(FontName As String) As Boolean
Dim sFont As New StdFont
sFont.Name = FontName
FontIsInstalled = StrComp(FontName, sFont.Name, vbTextCompare) = 0
End Function
Sub test()
Const cstrFontName = "Tahoma"
MsgBox FontIsInstalled(cstrFontName)
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Führe das
test()
-Makro aus, um die Verfügbarkeit der Schriftart "Tahoma" zu überprüfen. Du kannst den Schriftartnamen ändern, um andere Schriftarten zu testen.
Häufige Fehler und Lösungen
Alternative Methoden
Eine andere Möglichkeit, um Schriftarten zu ermitteln, besteht darin, direkt im Windows Fonts-Ordner nach TTF-Dateien zu suchen. Dies erfordert jedoch Zugriff auf das Dateisystem und kann komplexer sein. Hier ist ein einfacher Ansatz, um alle installierten Schriftarten aufzulisten:
Sub ListInstalledFonts()
Dim Font As Variant
For Each Font In Application.Fonts
Debug.Print Font.Name
Next Font
End Sub
Dieser Code gibt alle installierten Schriftarten im Direktfenster aus, was eine praktische Methode ist, um Schriftarten zu suchen.
Praktische Beispiele
- Schriftart testen: Um zu testen, ob "Arial" installiert ist, kannst Du den Sub
test()
anpassen:
Sub test()
Const cstrFontName = "Arial"
MsgBox FontIsInstalled(cstrFontName)
End Sub
- Liste der installierten Schriftarten: Nutze die
ListInstalledFonts()
-Subroutine, um eine Übersicht der verfügbaren Schriftarten zu erhalten.
Tipps für Profis
- Nutze die Funktion in Formeln: Du kannst die
FontIsInstalled
-Funktion auch in benutzerdefinierten Excel-Formeln verwenden.
- Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um die Robustheit Deines Codes zu erhöhen, falls eine Schriftart nicht gefunden wird.
- Performance-Optimierung: Wenn Du viele Schriftarten überprüfen musst, überlege, die Ergebnisse zwischenzuspeichern, um wiederholte Abfragen zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich die Schriftart auslesen, die in einer Zelle verwendet wird?
Du kannst die Schriftart einer Zelle mit Range("A1").Font.Name
abfragen, um den Namen der Schriftart zu erhalten.
2. Funktioniert dieser VBA-Code auch in Access?
Ja, der Code kann auch in Microsoft Access verwendet werden, um Schriftarten zu ermitteln.