Pregunta sobre autodesbordamiento de texto...

26/02/2007 - 20:18 por wr | Informe spam
Hola. Quiero hacer una macro para Pub2003 que me permita cargar el contenido
de un fichero TXT en una plantilla de libro que solo contiene UNA PÁGINA (y
las maestras, claro). Esta parte la tengo lista y funciona sin problemas
(copio y pego codigo debajo). El problema es que no encuentro la forma de
hacer que Publisher expanda el texto desbordado automáticamente en nuevas
páginas y cajas de texto similares a la página inicial (que es la única
página existente en mi documento, repito), al modo como hace cuando insertas
texto manualmente y te pregunta si deseas que cree nuevas páginas y lo
expanda a través de ellas. No sé si me explico con claridad. El mensaje que
Publisher te expone cuando lo haces manualmente es

"El texto insertado no cabe en este cuadro. Confirme que desea utilizar
ajuste automático
etc etc"

Con las opciones que puedo programar solo consigo que el texto se ajuste (o
no) al cuadro de texto de la página inicial, pero nunca que CREE
automáticamente nuevas páginas con cajas de texto como la de la página
inicial y obviamente tampoco que el texto se expanda en dichas cajas.

Saludos.

____________________
Option Explicit

Private Sub btOpen_Click()
Dim linea As String
Dim texto As String

linea = ""
texto = ""

dlg.DialogTitle = " Abrir fichero de Texto ..."
dlg.Filter = "Ficheros de Texto|*.txt"
dlg.FilterIndex = 0
dlg.ShowOpen

If dlg.Filename <> "" Then

ThisDocument.Pages.Item(1).Shapes.Item(1).TextFrame.TextRange.Text = ""

Open dlg.Filename For Input As #1
Do While Not EOF(1)
Line Input #1, linea
texto = texto + linea
Loop
Close #1

ThisDocument.Pages.Item(1).Shapes.Item(1).TextFrame.TextRange.Text = texto

End If

End Sub
 

Leer las respuestas

#1 wr
02/03/2007 - 12:53 | Informe spam
por si a alguien le interesa, ya programe una solución a mi problema.

la maqueta (el fichero pub) contiene tres páginas. la primera es el modelo
(a borrar cuando finalice la carga de texto), la segunda es el título del
libro y la tercera es la primera página del libro (donde comenzará a cargarse
el texto). el código completo está en un formulario (md) oculto y lo llamo
con una macro. un poco chapucillas X...D pero funciona perfecto.

[código en el formulario - md]

Option Explicit

Public Sub btOpen_Click()
Dim mae As Integer
Dim pag As Integer
Dim box As Integer

Dim linea As String
Dim texto As String

linea = ""
texto = ""

dlg.DialogTitle = " Abrir fichero de Texto ..."
dlg.Filter = "Ficheros de Texto|*.txt"
dlg.FilterIndex = 0
dlg.ShowOpen

If dlg.Filename <> "" Then

mae = 1
pag = 3
box = 1

ThisDocument.Pages.Item(pag).Shapes.Item(box).TextFrame.TextRange.Text = ""
ThisDocument.Pages.Item(pag).Shapes.Item(box).TextFrame.AutoFitText =
pbTextAutoFitNone

Open dlg.Filename For Input As #1
Do While Not EOF(1)
Line Input #1, linea
texto = texto + linea + Chr(13)
Loop
Close #1

' primera carga de la primera página del documento
ThisDocument.Pages.Item(pag).Shapes.Item(box).TextFrame.TextRange.Text =
texto

' mientras la caja de texto de la página tres se desborde
Do While
ThisDocument.Pages.Item(pag).Shapes.Item(box).TextFrame.Overflowing = msoTrue

' crea siguiente página como copia de la página uno
pag = pag + 1
ThisDocument.Pages.Add 1, pag - 1, mae

ThisDocument.Pages.Item(pag -
1).Shapes.Item(box).TextFrame.NextLinkedTextFrame = _
ThisDocument.Pages.Item(pag).Shapes.Item(box).TextFrame

Loop

End If

Unload Md

End Sub


"wr" escribió:

Hola. Quiero hacer una macro para Pub2003 que me permita cargar el contenido ...

Preguntas similares