Wyobraźmy sobie sytuację, że określonym dokumencie MS Word chcemy dokonać takiego podziału tekstu, aby w żadnej linii nie było więcej niż 30 znaków. Przykładowy paragraf, który pierwotnie wygląda następująco:
Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue
massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada
libero, sit amet commodo magna eros quis urna. Nunc viverra imperdiet enim.
Fusce est.
chcemy automatycznie podzielić na następujące linie, z których żadna nie ma więcej niż 30 znaków:
Lorem
ipsum dolor sit amet,
consectetuer adipiscing elit.
Maecenas porttitor congue
massa. Fusce posuere, magna
sed pulvinar ultricies, purus
lectus malesuada libero, sit
amet commodo magna eros quis
urna. Nunc viverra imperdiet
enim. Fusce est.
Poniższe makro wykona za nas tą operację dla wszystkich paragrafów aktywnego dokumentu. Tym razem wszystkie uwagi, ciekawostki i założenia zostały omówione w postaci komentarzy wewnątrz kodu.
07 | Dim znakPAR&, startPAR&, i&, znakCEL& |
10 | For Each PAR In ActiveDocument.Paragraphs |
14 | znakPAR = PAR.Range.Characters.Count |
15 | startPAR = PAR.Range.Start |
20 | If znakPAR > znakCEL Then |
22 | For i = (startPAR + znakCEL) To (startPAR + znakPAR) Step znakCEL |
24 | If Len(Trim(ActiveDocument.Range(i - 1, i + 1).Text)) < 2 Then |
28 | If ActiveDocument.Range(i - 1, i) = " " Then |
29 | ActiveDocument.Range(i, i).InsertBefore Chr(11) |
31 | ActiveDocument.Range(i + 1, i + 1).InsertAfter Chr(11) |
38 | ActiveDocument.Range(i, i). Select |
39 | Selection.MoveLeft wdWord |
40 | Selection.InsertBefore Chr(11) |
Brak komentarzy:
Prześlij komentarz