In realtà i codici postati funzionano, ma rischiano di troncarti la parola. Conviene troncare quando trovi uno spazio.
codice:
If Len(Text1.Text) > 23 Then
Stringa1 = Left(Text1.Text, InStrRev(Mid(Text1.Text, 1, 23), " "))
Stringa2 = Mid(Text1.Text, Len(Stringa1)+1)
EndIf
Utilizzando l'oggetto Printer puoi comunque fare molto meglio. Dato che il carattere può essere scelto puoi ragionare in millimetri, non in caratteri. Stabilisci quindi una lunghezza massima in mm
codice:
Printer.ScaleMode = 6
StringaApp = Text1.Text
While Printer.TextWidth(StringaApp) > LunghezzaMassima
StringaApp = Left(StringaApp, Len(StringaApp)-1)
Wend
If Len(StringaApp) = Len(Text1.Text) Then
'Sta su una riga
Else
If Mid(Text1.Text, Len(StringaApp)+1,1) = " " Then
Stringa1=StringaApp
Stringa2=Mid(Text1.Text, Len(StringaApp)+1)
Else
Stringa1 = Left(StringaApp, InStrRev(StringaApp, " "))
Stringa2 = Mid(Text1.Text, Len(Stringa1)+1)
EndIf
Endif
Tutto supponendo che si tratti al massimo di 2 righe. Se ne prevedi di + si complica, ma il concetto è sempre lo stesso