E fin qui tutto bene, a questo punto vorrei però rimuovere la formattazione pdf, ovvero intestazione e pie pagina e tutte le interruzioni di pagina e/o di sezione.
Capirete che farlo a "manina" diventa un lavoraccio, ora ho trovato una macro che in parte funziona, nel senso che rimuove intestazione e pie pagina ma non le interruzioni di sezioni o di pagina .Ergo la rimozione è parziale perchè si interrompe sempre a ogni interruzione di sezione. in pratica sarebbe necessario operare al contrario : prima rimuovere tutte le interruzioni di sezione /e di pagina dal documento e solo dopo le intestazioni - pie pagina.
intanto che scrivevo questo msg, mi ha incuriosito il richiamo a "wordbasic" quindi ulteriore ricerca e ho trovato la macro per rimuovere le intersezioni (delesectionbreak). inserite le due macro nel mio file .doc e il risultato è stato accettabile, sparite le interruzioni di sezione e le intestazioni , non funzia sui piè pagina.
- Codice: Seleziona tutto
Public Sub m()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim myDoc As Document
Dim sPath As String
sPath = " C:\percorso" ‘inserire qui ove trovasi il file da manipolare
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(sPath)
call DeleSectionBreaks
For Each objFile In objFolder.Files
Application.ScreenUpdating = False
Set myDoc = Documents.Open(sPath & "\" & objFile.Name)
WordBasic.RemoveHeader
WordBasic.RemoveFooter
myDoc.Save
myDoc.Close
Set myDoc = Nothing
Next
Application.ScreenUpdating = True
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
in un modulo inserire :
- Codice: Seleziona tutto
Sub DeleSectionBreaks()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub