View Single Post
  #8   Report Post  
Posted to microsoft.public.word.docmanagement
Graham Mayor Graham Mayor is offline
external usenet poster
 
Posts: 19,312
Default Hebrew / right-to-left text

The macro simply re-orders the selected text from end to start as if you had
typed it backwards. I did not envisage using it for long texts, merely
phrases inserted into an English document. However as I said I have no
personal knowledge of left to right languages.

As for transposing two selected characters, that macro would work, but I
suspect the following refinement might suit the task better

Sub Transpose()
Dim sText As String
sText = Selection.Range.Text
If Len(sText) 2 Then
MsgBox "You must select 2 characters!", _
vbCritical, "Transpose Characters"
Exit Sub
End If
If Selection.Range.Characters(1).Case = 1 _
And Selection.Range.Characters(2).Case = 0 Then
Selection.TypeText UCase(Mid(sText, 2, 1)) & _
LCase(Mid(sText, 1, 1))
Else
Selection.TypeText Mid(sText, 2, 1) & _
Mid(sText, 1, 1)
End If
End Sub


--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org


Peter T. Daniels wrote:
As Tony noted, line breaks will be a problem -- but also, if there's
more than one word, will it reverse each word independently, or do you
need to type your whole clause backward, last-word-first?

This would of course be most useful to make up for the most glaring
omission in Word's editing tools since the very beginning (since lots
of other DTP apps have it) -- "transpose two characters"!

On Oct 10, 9:29 am, "Graham Mayor" wrote:
Peter T. Daniels wrote:
IF you're using a Hebrew font that just puts the letters in the
a-z, A-Z etc. slots, then yes, you have to type backwards.


If the font requires that the text is typed backwards (and I hasted
to add I have no knowledge of right left languages) that can easily
be fixed with a macro that will reverse the order of selected text eg

Sub ReverseCharacters()
Dim sText As String
sText = Selection.Range.Text
If Len(sText) 2 Then
MsgBox "You must select at least 2 characters!", _
vbCritical, "Reverse Characters"
Exit Sub
End If
For i = Len(sText) To 1 Step -1
Selection.TypeText Mid(sText, i, 1)
Next i
End Sub

http://www.gmayor.com/installing_macro.htm
--

Graham Mayor - Word MVP

My web sitewww.gmayor.com
Word MVP web sitehttp://word.mvps.org