Es rutina es para comprender un poco de como utilizar el mandato print de una forma muy peculiar
'Rutina que da formato a la salida del mandato Print
Private Sub Form_Paint()
Dim mensaje As String, pos As Long, PosEspacio As Long
mensaje = "Utilizará con frecuencia los métodos TextWidth y TextHeight" _
& "para ver si un mensaje cabe dentro de un área determinada." _
& vbCrLf & "Esto es especialmente necesario cuando" _
& "imprima en un formulario, porque el método Print no" _
& "se ocupa automáticamente de dividir las líneas largas, y" _
& "será usted mismo quien tenga que resolver este problema" _
& "utilizando líneas de código."
Cls
Do While pos < Len(mensaje)
pos = pos + 1
If Mid$(mensaje, pos, 2) = vbCrLf Then
' Un par de CR-LF imprime la cadena mas allá
' y redefine las variables.
Print Left$(mensaje, pos - 1)
mensaje = LTrim$(Mid$(mensaje, pos + 2))
pos = 0
PosEspacio = 0
ElseIf Mid$(mensaje, pos, 1) = " " Then
' Si este es un espacio, recuerda su posición.
PosEspacio = pos
End If
'verifica la anchura del mensaje.
If TextWidth(Left$(mensaje, pos)) > ScaleWidth Then
' El mensaje es demasiado largo, hay que dividirlo.
' Si se localiza un espacio, divídelo aquí.
If PosEspacio Then pos = PosEspacio
' Imprime el mensaje hasta el puno de división.
Print Left$(mensaje, pos - 1)
' Descartar caracteres impresos, y volver a definir las variables.
mensaje = LTrim$(Mid$(mensaje, pos))
pos = 0: PosEspacio = 0
End If
Loop
' Imprime los caracteres restantes, si es que hay alguno.
If Len(mensaje) Then Print mensaje
End Sub
Private Sub Form_Resize()
Refresh
End Sub