Opmaak behouden bij uitvoer via VBA

Status
Niet open voor verdere reacties.

IJf

Gebruiker
Lid geworden
5 nov 2006
Berichten
40
Adressen die middels een mailinglist zijn aangeschreven worden ook op naam bewaard.
Daarvoor een VBA-script (gevonden en aangepast) en dat werkt ook goed, behalve dan dat de opmaak (meest belangrijk zijn de pagina-marges) niet wordt behouden.

Bij een standaard kopieeractie zou je Selection.PasteAndFormat (wdFormatOriginalFormatting) kunnen gebruiken, dat krijg ik echter niet werkend.
Een andere optie zou zijn het invoeren van de marges in het script.

HTML:
Sub SplitDocument() ‘is naam in macrolijst
'
' SplitDocument Macro
'
Dim rng As Range
Dim i As Long
Dim intPages As Integer
Dim lngStart As Long
Dim lngEnd As Long
Dim strID As String
Dim wd As Document
Set rng = ActiveDocument.Content
lngStart = 1
intPages = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
For i = 1 To intPages ‘het cijfer achter het =teken bepaald op welke pagina van het document wordt begonnen
Set rng = rng.GoTo(wdGoToSection, , i) ‘gebruik GoToPage bij handmatig Pagina-Einde
lngEnd = rng.Start - 1
If lngEnd > lngStart Then 'de eerste keer niet
ActiveDocument.Range(lngStart, lngEnd).Copy
Set wd = Documents.Add
wd.Content.Paste
wd.SaveAs "H:\Word\" & strID & " en voeg een naam toe.doc" ‘geeft pad  en bestandsnaam
wd.Close
End If
lngStart = lngEnd + 1
With rng.Find
.Text = "kenmerk^t:" ‘bestandsnaam wordt gezocht 
 
If .Execute = True Then
rng.Collapse wdCollapseEnd
rng.Move wdCharacter, 1
rng.Expand wdWord
strID = Trim(rng)
End If
End With
Next
ActiveDocument.Range(lngStart, ActiveDocument.Content.End).Copy
Set wd = Documents.Add
wd.Content.Paste
wd.SaveAs "H:\Word\" & strID & " en voeg een naam toe.doc"
wd.Close
Set wd = Nothing
End Sub
 
Probleem opgelost

Door het toevoegen van bijgaande code worden de marges ook in het nieuwe document toegepast.

NA>>>>Set wd = Documents.Add (2x)
Code:
With ActiveDocument.PageSetup
 .LeftMargin = InchesToPoints(1.58)
 .RightMargin = InchesToPoints(1.58)
 .TopMargin = InchesToPoints(1.97)
 .BottomMargin = InchesToPoints(1.58)
End With

Topic kan dicht
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan