Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schriftgöße (in den Eigenschaften) VBA

Forumthread: Schriftgöße (in den Eigenschaften) VBA

Schriftgöße (in den Eigenschaften) VBA
Matthias
Hallo Excelfreunde
Ich habe folgende Frage:
Warum setzt Excel nicht die von mir in den Eigenschaften festgelegte Schriftgröße
Obwohl in den Eigenschaften der Wert der Schriftgröße auf 10 festgelegt wird, ignoriert Excel das :-(
Ich habe das auch schon mit verschiedenen Schriftarten getestet
Festgesetzt ist Schriftgröße(10) in den Eigenschaften.
Ich müsste aber definitiv beim Start der Formulars Label1.Font.Size = 10 ausführen, obwohl in den Eigenschaften die Schriftgröße auf 10 steht!
Probiert das bitte mal in der Datei.
https://www.herber.de/bbs/user/76747.xls
Kann mir das jemand erklären?
Gruß Matthias
Anzeige
AW: Schriftgöße (in den Eigenschaften) VBA
24.09.2011 18:15:37
Hajo_Zi
Hallo Matthias,
weise zuerst der UserForm Deine gewünscte Schrift zu und dann erstelle die Steuerelemente.

sicher?
24.09.2011 18:34:11
Erich
Hi Hajo,
was hat das mit der Schriftgröße eines Labels zu tun?
Wo kommt es da auf die Reihenfolge der Schriftart-Zuweisungen?
Hat nicht jedes Control seine eigene Schriftart und -größe?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: sicher?
24.09.2011 18:35:44
Hajo_Zi
Hallo Erich,
bei der Erstellung wrd es aber von der UserfForm übernommen.
Gruß Hajo
ja, klar, aber...
24.09.2011 18:46:25
Erich
Hi Hajo,
... ob die Size 10 des Labels zur Entwicklungszeit per Vererbung von der UF stammt oder eingetippt wurde,
ist IMHO für Matthias' (Laufzeit-)Problem völlig wurscht.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Schriftgöße (in den Eigenschaften) VBA
24.09.2011 18:42:57
Matthias
Hallo Hajo
Danke für Deinen Beitrag.
Das habe ich ja bereits erkannt.
Ich müsste beim Start des Formulars Label1.Font.Size auf 10 setzen
Das ist auch nicht das Problem.
Mich interessiert aber warum Excel nicht den voreingestellten Wert aus den Eigenschaften benutzt?
Er steht ja schon auf Size=10 - nimmt aber 9.75 ?
Ich kann ja damit leben, aber warum ist das so ?
Gruß Matthias
Anzeige
Das wird eine Anpassung an die Labelmaße...
26.09.2011 00:49:54
Luc:-?
…sein, Matthias,
denn 9.75 ist ja nun nicht gerade eine Standardschriftgröße.
Gruß Luc :-?
...Außerdem konnte ich des öfteren feststellen,...
26.09.2011 00:55:43
Luc:-?
…dass die Schriftgröße, zumindest bei eingestelltem Einrasten am Raster, auch von der Position des Labels abhängt. Korrigiere die mal ein wenig, Matthias! Viell wird's dann wieder 10… ;-)
Luc :-?
Anzeige
Geht auch nicht ...
26.09.2011 09:59:30
Matthias
Hallo Luc
Habe jetzt verschiedenen Dateien neu erstellt, Objekte platziert,
Containerobjekte im Vorfeld schon auf Size=10 gesetzt
und erst danach die anderen Controls eingefügt.
Raster ein und ausgeschalten, Ausrichtung am Raster aktiviert/deaktiviert.
Die Positionen Left, Top, Height, Width verändert etc.
Die in den Eigenschaften festgelegte Schriftgröße(10) wird einfach ignoriert :(
Das passiert auch bei diversen anderen Schriftgrößen.
Ich kann damit leben, aber es ist eben nicht nachvollziehbar.
Dennoch Danke fürs Bemühen
Gruß Matthias
Anzeige
Start oder Load oder Activate?
24.09.2011 18:31:20
Erich
Hi Matthias,
bei mir funzt die Schriftgrößeneinstellung in deiner UF wunderbar.
Vielleicht beruht das Problem auf einem Missverständnis:
In den Eigenschaften ist Size 10 gesetzt.
Beim Laden der UF bekommt Label1 demnach Size 10.
Dann änderst du die Größe, sagen wir auf 17, und schließt die UF.
Wenn du sie jetzt wieder aufrufst, hat Label1 NICHT Size 10, sondern den letzten Wert, nämlich 17.
Die Werte bleiben erhalten, solange die UF geladen ist.
Du schreibst "Ich müsste aber definitiv beim Start der Formulars". Mit "Start" meinst du wohl nicht das Laden,
sondern die Aktivierung der UF.
Wenn du willst, dass Size 10 bei jeder Aktivierung eingestellt wird (also nicht nur beim Laden),
musst du das veranlassen, z. B. durch

Private Sub UserForm_Activate()
Label1.Font.Size = 10
End Sub
Alles klar?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Sicher ein Missverständnis!
24.09.2011 18:57:28
Matthias
Hallo Erich
Danke fürs Interesse

Beim Laden der UF bekommt Label1 demnach Size 10
Nein! Eben leider nicht, Hast Du Dir mal die Datei angeschaut
Wenn ich nach dem Laden des Formulars auf den/das Button klicke
der mir die Größe anzeigt, ist diese schon falsch!
In den Eigenschaften steht definitiv die Schriftgröße 10
Der Klick aufs Button zeigt dann aber 9.75!
Gruß Matthias
Anzeige
Sicher kein Missverständnis :-)
24.09.2011 19:09:21
Erich
Hi Matthias,
etwas merkwürdig war, dass der Fehler bei mir anfangs nicht auftrat. Daher meine erste Vermutung...
Noch eine Info:
Bei Voreinstellung mit Size 12 läufts richtig, aber bei Voreinstellung mit Size 8 wird 8,25 angezeigt :-(
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
noch eins
24.09.2011 19:29:18
Erich
Hi Matthias,
kleine Nebeninfo:
Size hat den Datentyp Currency. Bei den Eigenschaften kann man im Editor für die Font Size aber nur ganze Zahlen vorgeben.
Bei Vorgabe 14 wird 14,25 angezeigt. Rundet VBA da irgendwie merkwürdig?
Sicher wird intern umgerechnet, Punkt in Inch, ...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Es scheint so ...
24.09.2011 20:27:19
Matthias
Hallo Erich
... denn einige Größen funktionieren ja ohne Probleme.
Vielleicht liest ja jemand von MS hier mit und korrigiert diesen Fehler ;o)
Danke für Deinen Einsatz
Gruß Matthias
zurück - Frage offen
24.09.2011 19:00:11
Erich
Hi Matthias,
meine Beiträge werden dir auch nicht weiter helfen. Jetzt bekomme auch ich die 9,75 - und weiß wie du nicht, warum.
Ich suche weiter!
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Schriftgröße in VBA: Probleme und Lösungen


Schritt-für-Schritt-Anleitung

Um die Schriftgröße in einer VBA UserForm korrekt einzustellen, kannst du folgende Schritte befolgen:

  1. UserForm erstellen: Öffne Excel und gehe zu Entwicklertools > Visual Basic. Füge eine neue UserForm hinzu.

  2. Label hinzufügen: Platziere ein Label auf der UserForm und stelle in den Eigenschaften die Schriftgröße auf 10 ein.

  3. VBA Code hinzufügen: Füge den folgenden Code in das Modul der UserForm ein:

    Private Sub UserForm_Activate()
       Label1.Font.Size = 10
    End Sub
  4. Formular testen: Starte die UserForm und überprüfe, ob die Schriftgröße wie gewünscht angezeigt wird.


Häufige Fehler und Lösungen

Ein häufiges Problem ist, dass die in den Eigenschaften eingestellte vba font size nicht korrekt übernommen wird. Hier sind einige Lösungsansätze:

  • Reihenfolge der Zuweisungen: Stelle sicher, dass du zuerst die Schriftgröße der UserForm zuweist, bevor du die Steuerelemente hinzufügst.

  • Aktivierung der UserForm: Wenn du die UserForm aktivierst, stelle sicher, dass der Code zur Schriftgrößeneinstellung im UserForm_Activate()-Ereignis platziert ist.

  • Rundungsprobleme: Beachte, dass die Schriftgröße als Currency behandelt wird. Beispielsweise kann Size 10 intern als 9.75 angezeigt werden. Das ist ein bekanntes Verhalten in Excel.


Alternative Methoden

Falls die oben genannten Schritte nicht funktionieren, kannst du alternative Methoden ausprobieren:

  • Direkte Zuweisung: Anstatt die Schriftgröße in den Eigenschaften zu setzen, kannst du sie direkt im Code festlegen, wie im Schritt-für-Schritt-Beispiel gezeigt.

  • Formel für die Schriftgröße: Nutze eine Formel, um die Schriftgröße dynamisch zu setzen, abhängig von der Bildschirmauflösung oder anderen Variablen.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen können, die vba userform label font size korrekt einzustellen:

  1. Beispiel 1: Wenn du ein Label mit einem bestimmten Text hast, kannst du den folgenden Code verwenden, um die Schriftgröße dynamisch anzupassen:

    Private Sub UserForm_Initialize()
       Label1.Caption = "Beispieltext"
       Label1.Font.Size = 12
    End Sub
  2. Beispiel 2: Wenn du mehrere Labels hast und deren Schriftgröße einheitlich einstellen möchtest, kannst du eine Schleife verwenden:

    Private Sub UserForm_Activate()
       Dim ctrl As Control
       For Each ctrl In Me.Controls
           If TypeOf ctrl Is MSForms.Label Then
               ctrl.Font.Size = 10
           End If
       Next ctrl
    End Sub

Tipps für Profis

  • Verwendung von Konstanten: Definiere Konstanten für die Schriftgrößen, um deinen Code klarer und wartungsfreundlicher zu gestalten.

  • Überprüfung der DPI-Einstellungen: Manchmal kann die Schriftgröße durch die DPI-Einstellungen deines Monitors beeinflusst werden. Überprüfe diese und teste die UserForm auf verschiedenen Monitoren.

  • Debugging: Verwende das Debug.Print Statement, um die tatsächlichen Werte der Schriftgrößen während der Laufzeit zu überprüfen.


FAQ: Häufige Fragen

1. Warum wird die Schriftgröße nicht angewendet?
Es könnte an der Reihenfolge der Zuweisungen oder an der Art liegen, wie Excel die Schriftgrößen intern verarbeitet.

2. Welche Version von Excel wird benötigt?
Dieses Problem ist in mehreren Excel-Versionen bekannt, insbesondere in den Versionen, die VBA unterstützen.

3. Wie kann ich die Schriftgröße für mehrere Labels gleichzeitig ändern?
Du kannst eine Schleife verwenden, um durch alle Steuerelemente zu iterieren und die Schriftgröße entsprechend anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige