Rubrik: Oberfläche · MessageBox | VB-Versionen: VB4, VB5, VB6 | 08.04.04 |
MsgBox: Zahlen sauber untereinander anzeigen Mit einem kleinen Trick lassen sich Zahlen in einer MsgBox sauber untereinander anzeigen. | ||
Autor: Richard Mittelstädt | Bewertung: | Views: 18.573 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Sollen in einer MsgBox Zahlen sauber untereinander angezeigt werden, hat man ein Problem: Wie schafft man es, dass die Zahlenreihen rechtsbündig untereinander stehen?
Dim sMsg As String sMsg = " 1001" & vbNewLine & " 100001" MsgBox sMsg
Obiger Code würde die beiden Zahlenreihen nur dann sauber untereinander anzeigen, wenn die MsgBox eine Schrift verwenden würde, bei der jedes Zeichen gleich breit ist.
Ein kleiner Trick schafft Abhilfe:
Für Zahlen kann man anstatt einer Ziffer 2 Leerzeichen einsetzen!
Also basteln wir uns eine kleine Funktion, die einen Zahlen-String mit den erforderlichen Leerzeichen auffüllt, so dass die Zahlenreihen sauber untereinander dargestellt werden.
Public Function ZahlAusrichten(STR1, MLAENGE) ' ------------ 2 Leerzeichen = 1 Ziffer --------------------------- ' ***************************************************************** ' Funktion erweitert Einen Zahl-String STR1 auf mindestens MLAENGE ' durch anfügen von Leerzeichen ' Für korrekte Anzeige in MsgBox ( 2 Leerzeichen = 1 Ziffer) ' Damit kann man in MSG-Boxen Zahlen-Spalten korrekt uebereinanander ' darstellen. ' Nur fuer Zahlen-Spalten !!! ' ***************************************************************** If MLAENGE > Len(STR1) Then STR1 = String(2 * (MLAENGE - Len(STR1)), " ") & STR1 End If ZahlAusrichten = STR1 End Function
Wenden wir diese Funktion nun auf obiges Beispiel an:
Dim sMsg As String sMsg = ZahlAusrichten("1001",8) & vbNewLine & _ ZahlAusrichten("100001", 8) MsgBox sMsg
HINWEIS:
Diese Vorgehensweise funktioniert nur bei reinen Zahlen-Strings!