|
Das Font-Objekt
hat die löbliche Eigenschaft, Sie nicht im Regen stehen zu lassen,
wenn Sie einen Font setzen wollen, den es nicht gibt bzw. der auf
dem aktuellen System nicht installiert ist. In diesem Fall wird
nämlich ein von Windows vorgegebener Standardfont gewählt - in
aller Regel "MS Serif". Eine explizite
Fehlermeldung erhalten Sie jedoch nicht, so dass Sie selbst prüfen
müssen, ob der gewünschte Font gesetzt werden konnte.
Da ein vergebliches Setzen eines Fonts dazu führen kann, dass
andere Eigenschaften des Font-Objekts geändert werden, sollten Sie
zuvor prüfen, ob ein Font überhaupt zur Verfügung steht. Dazu
erzeugen Sie eine Instanz des StdFont-Objekts und weisen diesem erst
einmal den gewünschten Font-Namen zu. Hat dieses Font-Objekt die
Zuweisung akzeptiert, entspricht der gesetzte Font-Name der
Font-Eigenschaft (unbeachtet der Groß-/Kleinschreibung).
Dann können Sie den Font-Namen auch dem eigentlichen Font-Objekt
zuweisen.
Mit der Funktion IsFontAvailable können Sie prüfen, ob ein Font
verfügbar ist:
Public Function IsFontAvailable(FontName As String) As Boolean
With New StdFont
.Name = FontName
IsFontAvailable = Not CBool(StrComp(.Name, FontName, _
vbTextCompare))
End With
End Function
Den kompletten Vorgang des Prüfens und Setzens können Sie der
Funktion SetFont überlassen, der Sie ein Font-Objekt und den Namen
des gewünschten Fonts übergeben. Konnte der Font erfolgreich
gesetzt werden, gibt die Funktion True zurück.
Public Function SetFont(Font As StdFont, FontName As String) _
As Boolean
With New StdFont
.Name = FontName
If Not CBool(StrComp(.Name, FontName, vbTextCompare)) Then
Font.Name = FontName
SetFont = True
End If
End With
End Function
|