Užitečné Makra pro Word pro zformatování hebrejského textu.

Najdi hebrejské slovíčka a změň formátování

Potřebujete zvětšit hebrejské slovíčka v jinak psaném českém nebo anglickém textu? Použijte toto makro.

Sub ChangeHebrewFontSizeInSelectedText()
'Options.DefaultHighlightColorIndex = wdNoHighlight
'Range.HighlightColorIndex = wdNoHighlight ' used for testing to clear Highlight

Dim r As Range, t As Double: t = Timer
Application.ScreenUpdating = False
If Len(Selection.Range.Text) = 0 Then
MsgBox "Nejprve vyberte text kde jsou hebr. znaky. Please select the text including hebrew characters."
End If

For Each r In Selection.Range.Characters
checkHebrewCharRange r
Next

Application.ScreenUpdating = True
' Debug.Print Timer - t; Range.Words.Count; Range.Characters.Count; Range.End ' " 3.15625 8801 20601 20601 "
End Sub

' See Unicode table for hebrew: https://zims-en.kiwix.campusafrica.gos.orange.com/wikipedia_en_all_nopic/A/Unicode_and_HTML_for_the_Hebrew_alphabet
Sub checkHebrewCharRange(r As Range)
Dim b() As Byte, i As Long, a As Long
b = r.Text ' converts the string to byte array (2 or 4 bytes per character)
'Debug.Print "'" & r & "'"; r.LanguageID; r.LanguageIDFarEast; r.LanguageIDOther

For i = 1 To UBound(b) Step 2 ' 2 bytes per Unicode codepoint
If b(i) > 0 Then ' if AscW > 255
a = b(i): a = a * 256 + b(i - 1) ' AscW
Select Case a
'64298 FB2A sin to 64331 FB4A
Case &H5BE To &H5F4:
r.HighlightColorIndex = wdBrightGreen:
r.Font.Size = 24
Exit Sub
Case &H5D0 To &H5EA:
r.HighlightColorIndex = wdBrightGreen:
r.Font.Size = 24
Exit Sub
End Select
End If
Next
End Sub

Postup pro Word

1) Založte nový modul v aplikaci MS Visual Basic.
2) Zkopírujte do něj text kódu.
3) Umístěte kurzor do otevřeného dokumentu Word.
4) Vyberte text, který obsahuje české i hebrejské znaky.
5) Spusťe funkci ChangeHebrewFontSizeInSelectedText


Do kódu jsem zahrnul pouze základní hebrejské znaky, které používám na hebrejské klávesnici. Nepoužívám dagéš a samohlásky, proto může být seznam znaků neúplný.

Jak doplnit rozsah znaků

Pokud potřebujete modifikovat rozsahy, zaměřte svou pozornost na příkaz CASE, zejména hexadeximální rozsah Case &H5D0 To &H5EA 5D0 a 5EA jsou hodnoty v šestnáctkové soustavě, které snadno spočítáte na kalkulačce a zde to odpovídá rozsahu decimálních hodnot 1488 až 1514. Hodnota 64324 není decimální a jedná se o znak pe s dagéš.
Viz tabulka Kódování hebrejských znaků v unicode.

Změň směr čtení vybraného textu

Přehodil se vám směr čtení hebrejských znaků po zkopírování z webové aplikace? Použijte toto makro. Nejprve dvakrát klikněte na dané slovíčko a pak spusťe následující makro:

Sub Makro2()
'
' Makro2 1) Select hebrew text
' 2) Change order of the characters
'
Dim r1 As Range
Dim str1 As String
Dim a As Integer
Set r1 = Selection.Range
str1 = Trim(r1.Text)
a = r1.Start
' 1) select the text only, ignoring the ending whitespace
r1.SetRange Start:=a, End:=a + Len(Trim(r1.Text))
r1.Select
' 2) Change order of the characters
r1.Text = StrReverse(r1.Text)

End Sub
1) Nejprve vytvořte nové makro včetně přiřazení klávesové klávesy.
2) Zkopírujte do něj obsah funkce makro2.
3) Po spuštění makra (zmáčknutím klávesové zkratky) se nejprve zruší koncová mezera za slovem a pak se změní pořadí znaků.