Public Function GetFormatString(ByVal String1 As String, _ ByVal lLen As Long, _ Optional ByVal Alignment As Integer = 0, _ Optional ByVal Character As String = " ", _ Optional ByVal sFormat As String = "") As String 'Optimal mit Schriftart Courier New 'Parameter: ' String1: Der zu formatierende String ' lLen: gewünschte Länge ' Alignment: Links = 0, Rechts = 1 Zentriert = 2 ' Character: Das Zeichen zum Auffüllen ' sFormat: Formatierung laut VBA.Format() 'Rückgabewert: ' Der gewünschte String oder "" bei Fehleingabe 'Beispiele: ' GetFormatString(256/3,7,2,"_","000") = "__085__" ' GetFormatString("ABCD",7) = " ABCD" ' GetFormatString("ABCD",2,2) = "BC" Dim s As String Dim sAdd As String Dim l As Long If IsNull(String1) Then String1 = "" s = Format(String1, sFormat) l = Len(s) If l = 0 Then Exit Function If lLen < 1 Then Exit Function Select Case Alignment Case 0 'von links If l < lLen Then 'Einfügen sAdd = String(lLen - l, Character) GetFormatString = sAdd & s Else 'Abschneiden GetFormatString = Left(s, lLen) End If Case 1 'von rechts If l < lLen Then 'Einfügen sAdd = String(lLen - l, Character) GetFormatString = s & sAdd Else 'Abschneiden GetFormatString = Right(s, lLen) End If Case 2 'zentrieren If l < lLen Then 'Einfügen sAdd = String(Int((lLen - l) / 2), Character) s = sAdd & s GetFormatString = s & String(lLen - Len(s), Character) Else 'Abschneiden GetFormatString = Mid(s, Int((l - lLen) / 2) + 1, lLen) End If End Select End Function