Witam serdecznie.
Miałbym do Szanownych grupowiczów prośbę. Potrzebuję makro do Worda które w funkcjonalny sposób po każdym pojedynczym znaku (litera, cyfra) zamieni spację na non breaking space.
Pozdrawiam!
Witam serdecznie.
Miałbym do Szanownych grupowiczów prośbę. Potrzebuję makro do Worda które w funkcjonalny sposób po każdym pojedynczym znaku (litera, cyfra) zamieni spację na non breaking space.
Pozdrawiam!
sulimak , sam nie możesz zrobić sobie takiego makra, wystarczy użyć do tego rejestratora makr.
Witam.
Oto przykładowy zapis z kodu jaki mi wygenerował rejestrator.
Minus jest jeden, każdy wyraz (a, i, w, u, o etc.) muszę oddzielnie dodawać. Czy nie ma jednej formuły, coś w rodzaju %1, tak żebym w ten sposób określił iż makro ma się tyczyć wszystkich wyrazów jednoliterowych.
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = " i "
.Replacement.Text = " i^s"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Pozdrawiam.
sulimak, kod Twojego makra może nie dawać zadowalających efektów, jeżeli w tekście wystąpi ciąg pojedynczych znaków rozdzielanych spacjami, zaobserwowałem, że tylko co drugi taki znak będzie miał non breaking space po sobie
poniższy kod dotyczy zakresu cyfr "0…9’
#dla dużych liter ‘A…Z’ w pierwszej linijce należy zmienić, makro w tym przypadku zmieni występujące w tekście małe litery na duże (tak u mnie się stało)
For i = 65 To 90
#dla małych liter ‘a…z’ w pierwszej linijce należy zmienić
For i = 97 To 122
For i = 48 To 57
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = " " + Chr(i) + " "
.Replacement.Text = " " + Chr(i) + "^s"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Next i
jeżeli chciałbyś rozszerzyć listę znaków, to umieść odpowiednie wartości w pętli For z tablicy ASCII http://www.programuj.com/ascii.php
PS:jeżeli mój post jest nieprzydatny lub błędny proszę o prywatną wiadomość w celu modyfikacji tego co napisałem
Witam, zrodził się problem. Ogólnie skrypt działa dobrze, spełnia swoje zadanie, niemniej kastruje duże, pojedyncze litery na początku zdania zamieniając je na małe litery (Przykład: “Idziemy do szkoła w piątek. W sobotę wręcz przeciwnie.”).
'
' DUŻE LITERY
'
For i = 65 To 90
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = " " + Chr(i) + " "
.Replacement.Text = " " + Chr(i) + "^s"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Next i
'
' MAŁE LITERY
'
For i = 97 To 122
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = " " + Chr(i) + " "
.Replacement.Text = " " + Chr(i) + "^s"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Next i
Złączono Posta _: 27.09.2007 (Czw) 14:12_Mam! Chodziło o zmianę na:
MatchCase = False