Post by c***@gmail.comho una difficoltà che non riesco in alcun modo a superare: ho due
files .doc di circa 100 pagine, l'uno; uno contiene le pagine pari di
un documento, uno le dispari. come faccio (non manualmente
ovviamente!) a "comporre" i due files per averne uno solo? AIUTO!
Una domanda interessante è anche come hai fatto a smontarli. Non è banale,
perché le pagine possono terminare anche in mezzo ad un paragrafo, e
spezzarlo può creare problemi. In particolare, non è detto che le pagine
divise restino distinte così come erano nell'originale.
Anche per la ricomposizione si danno considerazioni analoghe. In generale,
quindi, è difficile costruire una soluzione automatica al problema. Questo
genere di cose è meglio farle in postproduzione, per esempio su un
documento pdf o postscript.
Presumendo di partire da due documenti particolarmente appropriati per
questa operazione, si potrebbe tentare con qualcosa del genere del codice
seguente, con l'avvertenza comunque di controllare bene il documento
risultante.
In particolare non sono sicurissimo di aver gestito correttamente quello
che avviene alla fine dei due documenti.
Public Sub ricomponi_doc()
alterna_pagine "dispari.doc", "pari.doc"
End Sub
Public Sub alterna_pagine(dispari As String, pari As String)
Dim Pagina_dispari As Range
Dim Pagina_pari As Range
Dim brano As Range
Dim nome As String
Dim numero As Integer
Dim inizio_dispari As Long
Dim inizio_pari As Long
Dim fine_dispari As Long
Dim fine_pari As Long
Dim doc_pari As Document
Dim doc_dispari As Document
Dim doc_unione As Document
numero = 1
Set doc_dispari = Documents.Open(dispari)
Set doc_pari = Documents.Open(pari)
Set doc_unione = Documents.Add
Set brano = doc_unione.Range(0, 0)
Set Pagina_dispari = doc_dispari.Range(0, 0)
inizio_dispari = Pagina_dispari.start
fine_dispari = Pagina_dispari.GoToNext(wdGoToPage).start
Set Pagina_pari = doc_pari.Range(0, 0)
inizio_pari = Pagina_pari.start
fine_pari = Pagina_pari.GoToNext(wdGoToPage).start
While inizio_dispari <> fine_dispari
Pagina_dispari.SetRange inizio_dispari, fine_dispari
Pagina_dispari.Copy
brano.Collapse wdCollapseEnd
brano.Paste
Pagina_pari.SetRange inizio_pari, fine_pari
Pagina_pari.Copy
brano.Collapse wdCollapseEnd
brano.Paste
Pagina_dispari.SetRange fine_dispari, fine_dispari
inizio_dispari = fine_dispari
fine_dispari = Pagina_dispari.GoToNext(wdGoToPage).start
Pagina_pari.SetRange fine_pari, fine_pari
inizio_pari = fine_pari
fine_pari = Pagina_pari.GoToNext(wdGoToPage).start
Wend
Pagina_dispari.EndOf wdStory, wdExtend
Pagina_dispari.Copy
brano.Collapse wdCollapseEnd
brano.Paste
End Sub
Ciao.