Título: Mandato Print Publicado por: ActiveSheet en 29 Diciembre 2007, 07:15 am 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 (http://images-as.iespana.es/imagenes/4650359693e682ded933515247348018_jaja.png) |