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 PrintPrivate Sub Form_Paint()
Dim mensaje As
String, pos As
Long, PosEspacio As
Longmensaje = "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
Else
If 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 SubPrivate Sub Form_Resize()
Refresh
End Sub