Ik heb een heleboel Word (XP) documenten waarin zich 2 problemen voordoen:
1) de regels zijn alle halverwege afgebroken door een harde return (een enter dus). Dat moet niet; alle regels moeten gewoon doorlopen.
2) de regels beginnen pas na een heel aantal spaties. Of er zitten meer dan 1 spaties tussen de regels. Dat moet ook niet; Elke regel moet gewoon helemaal links aan de kantlijn beginnen en de spaties tussen de regels moeten ook weg.
Kortom, het moet een normaal document worden zonder overbodige 'enters' en spaties. Nu heb ik me laten vertellen dat dat het meest efficient kan met een macro in Word. Maar weet iemand hoe ik dat het snelst kan doen? Wat is bijvoorbeeld een 'enter' in het macroprogramma?
Ik hoop dat iemand iets weet :!: :idea:
ad 2 kun je waarschijnlijk oplossen door find en replace, dan kun je bv een combinatie van 2 spaties laten vervangen door niks.
Ad 1 weet ik niet
Oh ja, dat had ik moeten zeggen: ik heb me al helemaal dood lopen Ctrl-F-en en replacen. Maar het voordeel van een macro is dat ik het maar één keer hoef te doen voor alle documenten.
Stap over op Open Office ;)
ik denk dat je hier een heel eind mee komt
Code: Select All CodeSub rev() Dim tekst, tekst2 As Range For Each tekst In ActiveDocument.StoryRanges With tekst.Find .Text = Chr(13) .Replacement.Text = "" .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With Next tekst For Each tekst2 In ActiveDocument.StoryRanges With tekst2.Find .Text = " " .Replacement.Text = "" .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With Next tekst2 End Sub
Ja, donders, dit helpt inderdaad. Toch nog een vraag: volgens mij worden zo alle Chr(13)'s vervangen door een spatie. Dat moet niet, anders wordt de tekst één brei, zonder alinea's. Dus hoe kan ik aangeven dat ik alleen telkens één harde return weg krijg?
Zo dus, dat de regels weer mooi aan elkaar komen, maar de alinea's niet.
Ik hoop dat dit kan :oops:
Ach als we toch bezig zijn kan je het ook beter afmaken :D
Code: Select All CodeBeetje gekuntstelde oplossing maar het werkt wel:
Sub rev() Dim tekst, tekst2, tekst3, tekst4 As Range For Each tekst In ActiveDocument.StoryRanges With tekst.Find .Text = Chr(13) .Replacement.Text = "$%#$" .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With Next tekst For Each tekst2 In ActiveDocument.StoryRanges With tekst2.Find .Text = "$%#$$%#$" .Replacement.Text = Chr(13) .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With Next tekst2 For Each tekst3 In ActiveDocument.StoryRanges With tekst3.Find .Text = "$%#$" .Replacement.Text = " " .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With Next tekst3 For Each tekst4 In ActiveDocument.StoryRanges With tekst4.Find .Text = " " .Replacement.Text = " " .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With Next tekst4 End Sub
Iig veel succes ermee!
Ps. ik neem aan dat de symbolencombinatie $%#$ niet in die teksten staan :wink:
Toch even nieuwsgierig: hoe kom je aan 'een heleboel' van zulke documenten? Heb je een aantal scripties geërfd van een digibeet of zo?
@Kramer,
Als student-assistent moet ik verkiezingsprogramma's die slecht opgemaakt zijn (met al die spaties dus) leesbaar maken voor computerprogramma die alleen maar .txt-files leest.
@Frits,
Frits, jongen, ik kan alleen maar zeggen: bedankt :!: :!: :!:
Echt :!:
Je kunt ook de functie hyphenation aanzetten bij 'tools' 'language'.....
Doe niet zo wijs vent...
Je kunt het ook omdraaien....maar dat hangt van de situatie af.
Ja, deed ik inderdaad ook, maar dan bleven die enters waarmee elke regel halverwege werd afgebroken gewoon bestaan.
Krijg je voor dit extra werk nou ook extra geld?