[Word / VBA?]

0

Czy istnie gotowe rozwiązanie (wbudowane w Worda albo gotowe makro), które pomaga szybko przenieść spójniki typu: "i", "z", "o" itp. z końca wiersza na początek następnego? (pracuję na Microsoft Office Word2003)

0

To dosc stary kod, z okolic 1998 roku, ale powinien dzialac. napisane dla Word 97, ale problemu nie powinno byc z innymi wersjami:

 MaxLines = ActiveDocument.BuiltInDocumentProperties(wdPropertyLines)
 For i = 1 To MaxLines
   Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=i, Name:=""
   Selection.EndKey Unit:=wdLine, Extend:=wdExtend
   With Selection.Characters
     If .Count > 4 Then
       If (.Item(.Count - 2) = " ") And (.Item(.Count - 1) <> " ") And (.Item(.Count) = " ") Then
         .Item(.Count) = " " //<- Tu jest znak Ctrl+_Shift+Spacja!
       End If
     End If
   End With
 Next
0

Kod działa, ale przy kopiowaniu ze strony twarda spacja zamieniła mi się na zwykłą i nie wiem, jak ją wstawić w skrypcie (nie działa Ctrl+Shift_Space ani kopiowanie z Worda) :|
Napisz jeszcze, jak wstawić znak twardej spacji do edytora, ok? ;)

0

Kurde, w Wordzie 97 dzialalo z wstaiwnieniem do kodu normalnie Ctrl+Shift+Space, w nowszych wersjach fucktycznie jest jakis babol... Poszukam jak cos znajde dam znac.

// EDIT

Daj Chr(160) i po sprawie

0

Znak twardej spacji to "Chr(11)" deklarujesz ją np:

Text:=Chr(11)

zachowa Ci się w ten sposób jakbyś wykonał kombinacje shift+enter
pozwoli to przenieść litery do nowego wiersza nie ingerując w formatowanie tekstu.

Powodzenia

1

Nieeee. Twarda spacja to Shift+Ctrl+Spacja. I to daje w wyniku kod 160. Sprawdzalem sobie to w Wordzie makrem, ktore zczytalo ASCII znaku wprowadzonego na w dokumencie. Shift + Enter to nowa linia nie twarda spacja.

0

Bardzo fajny kod. Troszkę poprawiłem, zgodnie z tym co koledzy pisali powyżej.
Działa świetnie w Word 2007.

MaxLines = ActiveDocument.BuiltInDocumentProperties(wdPropertyLines)
 For i = 1 To MaxLines
   Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=i, Name:=""
   Selection.EndKey Unit:=wdLine, Extend:=wdExtend
   With Selection.Characters
     If .Count > 4 Then
       If (.Item(.Count - 2) = Chr(32)) And (.Item(.Count - 1) <> Chr(32)) And (.Item(.Count) = Chr(32)) Then
         .Item(.Count) = Chr(160)
       End If
     End If
   End With
 Next

1 użytkowników online, w tym zalogowanych: 0, gości: 1