Sub GerFx()
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem ドイツ語代用文字範囲内置換処理
  Rem 作譜:Hitrock Camellia Shinopy
  Rem 言語:Word VBA
  Rem 機能...
  Rem   ドイツ語代用文字を正書文字に置換する。
  Rem   ドイツ語正書文字を代用文字に置換する。
  Rem 注記...
  Rem   「GerFx」を起動して、ツールバーを追加し、コマンドボタンを押して、処理を実行する。
  Rem   不具合あり。
  Rem     GerFxSuff実行後に、カーソル位置が選択範囲の末尾より1〜2文字分左になることがある。
  Rem 履歴...
  Rem   第1版:2004/12/28:作成。
  Rem   (...)
  Rem   第10版:2007/01/22:Word2007以降に対応するため、バルーン表示を廃止。ツールバー表示に変更。
  Rem   第11版:2007/01/25:[^代用表記]処理を追加。
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Dim myTitle As String
  Dim myBoolean As Boolean
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  Rem 既定値の設定
  myTitle = "GerFx"
  myBoolean = True ' アプリケーションの終了時に自動的にツールバー削除する。
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  Rem 同名ツールバーの削除
  On Error Resume Next
  CommandBars(myTitle).Delete
  On Error GoTo 0
  '
  Rem ステータスバーの表示
  Application.DisplayStatusBar = True
  '
  Call GerFxBlln(myTitle, myBoolean)
End Sub ' GerFx *----*----*    *----*----*    *----*----*    *----*----*

Sub GerFxBlln(myTitle As String, myBoolean As Boolean)
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem ツールバー表示処理
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Dim myCmmdBar As CommandBar
  Dim myCtrlBttn As CommandBarControl
  Dim myCtrlCboxItem As CommandBarControl
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  Set myCmmdBar = CommandBars.Add(Name:=myTitle, Position:=msoBarTop, Temporary:=myBoolean)
  Set myCtrlBttn = myCmmdBar.Controls.Add(Type:=msoControlButton, Before:=1, Temporary:=myBoolean)
  Set myCtrlCboxItem = myCmmdBar.Controls.Add(Type:=msoControlComboBox, Before:=2, Temporary:=myBoolean)
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  With myCtrlBttn
    .DescriptionText = "ドイツ語 代用文字 範囲内置換:選択した処理を実行します。"
    .Style = msoButtonIcon
    .Caption = myTitle
    .TooltipText = "実行!"
    .FaceId = 1611
    .OnAction = "GerFxBttn"
  End With
  '
  With myCtrlCboxItem
    .DescriptionText = "実行する処理を選択します。"
    .Style = msoComboNormal
    .Caption = "処理"
    '
    .AddItem "AOUe/ss記法", 1
    .AddItem "^記法", 2
    .AddItem "&;記法", 3
    .AddItem "===========", 4
    .AddItem "AOUe/ss代用表記", 5
    .AddItem "^代用表記", 6
    .AddItem "&;代用表記", 7
    '
    .ListIndex = 1
    .TooltipText = "AOUe/ss記法"
    .DropDownLines = 11
    .DropDownWidth = 200
    .OnAction = "GerFxCboxItem"
  End With
  '
  myCmmdBar.Visible = True
End Sub ' GerFxBlln *----*----*    *----*----*    *----*----*    *----*----*

Sub GerFxCboxItem(Optional myDummy As Boolean)
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem [処理]コンボボックス処理
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  With CommandBars("GerFx").Controls(2)
    If .Text = "===========" Then
      .TooltipText = "処理が未選択です。"
    Else
      If .Text = "&;記法" Or .Text = "&;代用表記" Then
        .TooltipText = "&" & .Text
      Else
        .TooltipText = .Text
      End If
    End If
  End With
End Sub ' GerFxCboxItem *----*----*    *----*----*    *----*----*    *----*----*

Sub GerFxBttn(Optional myDummy As Boolean)
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem 各ボタン処理
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Dim myTitle As String
  Dim myBttn As Long
  Dim myLabel As String
  Dim c  As Long
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  myTitle = "GerFx"
  '
  With CommandBars(myTitle).Controls(2)
    myLabel = .Text
    myBttn = .ListIndex
  End With
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  Select Case myBttn
    Case 0, 4
      GoTo GerFxBttnSubExit
  End Select
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  Application.ScreenUpdating = False
  '
  If Selection.Range.Text = "" Then
    c = Selection.MoveUp(wdParagraph, 1, wdExtend)
    If c = 0 Then
      GoTo GerFxBttnSubExit
    End If
  End If
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
GerFxBttnSubEntry:
  Select Case myBttn
    Case 1
      Call GerFxSffx("e")
    Case 2
      Call GerFxSffx("^")
    Case 3
      Call GerFxUcs2
    Case 5
      Call GerFxSuff("e")
    Case 6
      Call GerFxSuff("^")
    Case 7
      Call GerFxSuff("")
  End Select
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
GerFxBttnSubExit:
  Selection.Collapse wdCollapseEnd
  '
  Rem 続けて処理する場合に備える。
  CommandBars(myTitle).Enabled = False
  CommandBars(myTitle).Enabled = True
  '
  Application.ScreenUpdating = True
  '
  Select Case myBttn
    Case 1 To 3, 5 To 7
      Application.StatusBar = myTitle & ":" & "処理完了!" & "[ " & myLabel & " ]"
  End Select
End Sub ' GerFxBttn *----*----*    *----*----*    *----*----*    *----*----*

Sub GerFxSffx(mySffx As String)
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem 各接尾字記法処理
  Rem mySffxの値...
  Rem   「^」の場合:^接尾字の文字列を置換する。
  Rem   「x」の場合:^接尾字とx接尾字ともに文字列を置換する。
  Rem   「e」の場合:^接尾字とe接尾字・ssともに文字列を置換する。
  Rem 注記...
  Rem   参照設定する場合:Microsoft VBScript Regular Expressions 5.5
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  If Selection.Range.Characters.Count < 2 Then Exit Sub
  '
  Dim myCursor As Long
  Dim c As Long
  '
  Dim myRange As Range
  Dim myChrs As Characters
  Dim myChrsFound As Characters
  Dim myText As String
  Dim myLen As Long
  '
  Dim myRegExp As Variant ' VBScript_RegExp_55.RegExp
  Dim myMatches As Variant ' MatchCollection
  Dim myMatch As Variant ' Match
  Dim myPttn As String
  '
  Set myRegExp = CreateObject("VBScript.RegExp") ' New VBScript_RegExp_55.RegExp
  Set myRange = Selection.Range
  Set myChrs = myRange.Characters
  Selection.Collapse wdCollapseStart
  '
  Rem パターンを設定
  Select Case mySffx
    Case "x"
      myPttn = "([AEIOUaeiou]{1,1}[\_]{1,1})|([AOUaous]{1,1}[x\^]{1,1})"
    Case "^"
      myPttn = "([AEIOUaeiou]{1,1}[\_]{1,1})|([AOUaous]{1,1}[\^]{1,1})"
    Case "e"
      myPttn = "([AEIOUaeiou]{1,1}[\_]{1,1})|([AOUaou]{1,1}[e\^]{1,1})|(s\^)|(ss)"
  End Select
  '
  With myRegExp
    .Pattern = myPttn ' パターンを指定
    .IgnoreCase = False ' 大文字小文字を区別する。
    .Global = True ' 文字列全体を検索
  End With
  Set myMatches = myRegExp.Execute(myRange.Text)
  '
  For Each myMatch In myMatches
    With Selection.Find
      .ClearFormatting
      .Text = myMatch.Value
      .Forward = True
      .Wrap = wdFindStop
      .MatchCase = True
      .MatchAllWordForms = False
      .MatchSoundsLike = False
      .MatchFuzzy = False
      .MatchWildcards = False
      .Execute
    End With
    '
    Set myChrsFound = Selection.Range.Characters
    myText = myChrsFound.Parent.Text
    myLen = Len(myText)
    '
    Select Case myChrsFound.First.Next.Text
      Case "^"
        Select Case myChrsFound.First.Text
          Case "A", "O", "U", "a", "o", "u", "s"
            Call GerFxAous("", "^", myText)
        End Select
      Case "x"
        Select Case myChrsFound.First.Text
          Case "A", "O", "U", "a", "o", "u", "s"
            Call GerFxAous("", "x", myText)
        End Select
      Case "e"
        Select Case myChrsFound.First.Text
          Case "A", "O", "U", "a", "o", "u"
            Call GerFxAous("", "e", myText)
        End Select
      Case "s"
        Select Case myChrsFound.First.Text
          Case "s"
            Call GerFxAous("", "e", myText)
        End Select
      Case "_"
        Select Case myChrsFound.First.Text
          Case "A", "E", "I", "O", "U", "a", "e", "i", "o", "u"
            Call GerFxAeiou("", "_", myText)
        End Select
    End Select
    '
    If myLen <> Len(myText) Then
      Rem 置換する文字列があった場合。
      myChrsFound.First.Text = myText
      myChrsFound.First.Next.Text = ""
    End If
    '
    myCursor = myChrsFound.First.Start - myChrs.First.Start + 1
    c = myCursor * 100 \ myChrs.Count
    Application.StatusBar = "GerFx" & ":処理中" & " " & Format(c, "##0") & "%"
  Next ' myMatch
  '
  myRange.Select ' 当初の選択範囲。
  Selection.Collapse wdCollapseEnd
  '
  Set myRegExp = Nothing
  Set myMatches = Nothing
  '
  Set myRange = Nothing
  Set myChrs = Nothing
  Set myChrsFound = Nothing
End Sub ' GerFxSffx *----*----*    *----*----*    *----*----*    *----*----*

Sub GerFxUcs2(Optional myDummy As Boolean)
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem &;記法処理
  Rem 「&〜;」(UCS_2十進符号表記)を検索し、文字列を置換する。
  Rem 注記...
  Rem   参照設定する場合:Microsoft VBScript Regular Expressions 5.5
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  If Selection.Range.Characters.Count < 3 Then Exit Sub
  '
  Dim i As Long
  Dim j As Long
  Dim c As Long
  '
  Dim myRange As Range
  Dim myChrsFound As Characters
  Dim myText As String
  Dim myLen As Long
  '
  Dim myRegExp As Variant ' VBScript_RegExp_55.RegExp
  Dim myMatches As Variant ' MatchCollection
  Dim myMatch As Variant ' Match
  '
  Set myRegExp = CreateObject("VBScript.RegExp") ' New VBScript_RegExp_55.RegExp
  Set myRange = Selection.Range
  Selection.Collapse wdCollapseStart
  '
GerFxUcs2SubEntry:
  With myRegExp
    .Pattern = "\&{1}[\#A-Za-z0-9]{1,10}\;{1}" ' 「&〜;」を指定。
    .IgnoreCase = False ' 大文字小文字を区別する。
    .Global = True ' 文字列全体を検索。
  End With
  Set myMatches = myRegExp.Execute(myRange.Text)
  '
  If myMatches.Count = 0 Then GoTo GerFxUcs2SubExit
  '
  With Selection.Find
    .ClearFormatting
    .Text = "&{1,1}[\#A-Za-z0-9]{1,10};{1,1}"
    .Forward = True
    .Wrap = wdFindStop
    .MatchCase = True
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
    For i = 1 To myMatches.Count
      .Execute
      '
      Set myChrsFound = Selection.Range.Characters
      myText = myChrsFound.Parent.Text
      myLen = Len(myText)
      '
      Call GerFxUcAeiou(myText)
      Call GerFxUcAous(myText)
      Call GerFxUcOthers(myText)
      '
      If myLen <> Len(myText) Then
        myChrsFound.First.Text = myText
        For j = 2 To myLen
          myChrsFound.First.Next.Text = ""
        Next ' j
      End If
      '
      c = i * 100 \ myMatches.Count
      Application.StatusBar = "GerFx" & ":処理中" & " " & Format(c, "##0") & "%"
    Next ' i
  End With
  '
GerFxUcs2SubExit:
  myRange.Select ' 当初の選択範囲。
  Selection.Collapse wdCollapseEnd
  '
  Set myRegExp = Nothing
  Set myMatches = Nothing
  '
  Set myRange = Nothing
  Set myChrsFound = Nothing
End Sub ' GerFxUcs2 *----*----*    *----*----*    *----*----*    *----*----*

Sub GerFxSuff(mySffx As String)
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem 代用文字表記処理
  Rem 各国文字など各種の文字(Unicodeで160〜511の範囲)を検索し、
  Rem (1):検索した文字列を、UCS_2十進表記に置換する。
  Rem (2):ドイツ語文字を、指定した接尾字付き文字に置換する。
  Rem (3):屈音符付き母音字を、「_」接尾字付き文字に置換する。
  Rem mySffxの値...
  Rem   「」の場合:検索した総ての文字列を対象に(1)処理。
  Rem   「^」の場合:(3)処理、「^」接尾字付き(2)処理、その他は(1)処理。
  Rem   「e」の場合:(3)処理、「e」接尾字付き(2)処理、その他は(1)処理。
  Rem 注記...
  Rem   参照設定する場合:Microsoft VBScript Regular Expressions 5.5
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  If Selection.Range.Characters.Count < 1 Then Exit Sub
  '
  Dim i As Long
  Dim c As Long
  Dim myCount As Long
  '
  Dim myRange As Range
  Dim myChrsFound As Characters
  Dim myText As String
  Dim myLen As Long
  '
  Dim myRegExp As Variant ' VBScript_RegExp_55.RegExp
  Dim myMatches As Variant ' MatchCollection
  Dim myMatch As Variant ' Match
  '
  Set myRegExp = CreateObject("VBScript.RegExp") ' New VBScript_RegExp_55.RegExp
  Set myRange = Selection.Range
  myCount = Selection.Range.Characters.Count
  Selection.Collapse wdCollapseStart
  '
GerFxSuffSubEntry:
  With myRegExp
    .Pattern = "[" & ChrW(160) & "-" & ChrW(511) & "]{1}"
    .IgnoreCase = False ' 大文字小文字を区別する。
    .Global = True ' 文字列全体を検索
  End With
  Set myMatches = myRegExp.Execute(myRange.Text)
  '
  If myMatches.Count = 0 Then GoTo GerFxSuffSubExit
  '
  With Selection.Find
    .ClearFormatting
    .Text = "[" & ChrW(160) & "-" & ChrW(511) & "]{1,1}"
    .Forward = True
    .Wrap = wdFindStop
    .MatchCase = True
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
    For i = 1 To myMatches.Count
      .Execute
      '
      Set myChrsFound = Selection.Range.Characters
      myText = myChrsFound.Parent.Text
      myLen = Len(myText)
      '
      If mySffx = "" Then
        Call GerFxRvOthers(myText)
      Else
        Select Case myText
          Case ChrW(194), ChrW(202), ChrW(206), ChrW(212), ChrW(219)
            Call GerFxRvAeiou("", "_", myText)
          Case ChrW(226), ChrW(234), ChrW(238), ChrW(244), ChrW(251)
            Call GerFxRvAeiou("", "_", myText)
          Case ChrW(196), ChrW(214), ChrW(220)
            Call GerFxRvAous("", mySffx, myText)
          Case ChrW(228), ChrW(246), ChrW(252), ChrW(223)
            Call GerFxRvAous("", mySffx, myText)
          Case Else
            Call GerFxRvOthers(myText)
        End Select
      End If
      '
      If myLen <> Len(myText) Then
        Rem 置換する文字列があった場合。
        myChrsFound.Parent.Text = myText
        myCount = myCount + Len(myText) - 1
      End If
      '
      c = i * 100 \ myMatches.Count
      Application.StatusBar = "GerFx" & ":処理中" & " " & Format(c, "##0") & "%"
    Next ' i
  End With
  '
GerFxSuffSubExit:
  myRange.Select ' 当初の選択範囲。
  Selection.Collapse wdCollapseStart
  Selection.MoveRight Unit:=wdCharacter, Count:=myCount, Extend:=wdMove
  '
  Set myRegExp = Nothing
  Set myMatches = Nothing
  '
  Set myRange = Nothing
  Set myChrsFound = Nothing
End Sub ' GerFxSuff *----*----*    *----*----*    *----*----*    *----*----*

Sub GerFxAeiou(prefixC As String, suffixC As String, myText As String)
  myText = Replace(myText, prefixC & "A" & suffixC, ChrW(194)) ' A_
  myText = Replace(myText, prefixC & "E" & suffixC, ChrW(202)) ' E_
  myText = Replace(myText, prefixC & "I" & suffixC, ChrW(206)) ' I_
  myText = Replace(myText, prefixC & "O" & suffixC, ChrW(212)) ' O_
  myText = Replace(myText, prefixC & "U" & suffixC, ChrW(219)) ' U_
  '
  myText = Replace(myText, prefixC & "a" & suffixC, ChrW(226)) ' a_
  myText = Replace(myText, prefixC & "e" & suffixC, ChrW(234)) ' e_
  myText = Replace(myText, prefixC & "i" & suffixC, ChrW(238)) ' i_
  myText = Replace(myText, prefixC & "o" & suffixC, ChrW(244)) ' o_
  myText = Replace(myText, prefixC & "u" & suffixC, ChrW(251)) ' u_
End Sub ' GerFxAeiou *----*----*    *----*----*    *----*----*

Sub GerFxAous(prefixC As String, suffixC As String, myText As String)
  myText = Replace(myText, prefixC & "A" & suffixC, ChrW(196)) ' A^
  myText = Replace(myText, prefixC & "O" & suffixC, ChrW(214)) ' O^
  myText = Replace(myText, prefixC & "U" & suffixC, ChrW(220)) ' U^
  '
  myText = Replace(myText, prefixC & "a" & suffixC, ChrW(228)) ' a^
  myText = Replace(myText, prefixC & "o" & suffixC, ChrW(246)) ' o^
  myText = Replace(myText, prefixC & "u" & suffixC, ChrW(252)) ' u^
  If suffixC = "e" Then
    myText = Replace(myText, "ss", ChrW(223)) ' s^
  Else
    myText = Replace(myText, prefixC & "s" & suffixC, ChrW(223)) ' s^
  End If
End Sub ' GerFxAous *----*----*    *----*----*    *----*----*

Sub GerFxUcAeiou(myText As String)
  myText = Replace(myText, "&Acirc;", ChrW(194)) ' A_
  myText = Replace(myText, "&Ecirc;", ChrW(202)) ' E_
  myText = Replace(myText, "&Icirc;", ChrW(206)) ' I_
  myText = Replace(myText, "&Ocirc;", ChrW(212)) ' O_
  myText = Replace(myText, "&Ucirc;", ChrW(219)) ' U_
  '
  myText = Replace(myText, "&acirc;", ChrW(226)) ' a_
  myText = Replace(myText, "&ecirc;", ChrW(234)) ' e_
  myText = Replace(myText, "&icirc;", ChrW(238)) ' i_
  myText = Replace(myText, "&ocirc;", ChrW(244)) ' o_
  myText = Replace(myText, "&ucirc;", ChrW(251)) ' u_
End Sub ' GerFxUcAeiou *----*----*    *----*----*    *----*----*

Sub GerFxUcAous(myText As String)
  myText = Replace(myText, "&Auml;", ChrW(196))   '  A^
  myText = Replace(myText, "&Ouml;", ChrW(214))   '  O^
  myText = Replace(myText, "&Uuml;", ChrW(220))   '  U^
  '
  myText = Replace(myText, "&auml;", ChrW(228))   '  a^
  myText = Replace(myText, "&ouml;", ChrW(246))   '  o^
  myText = Replace(myText, "&uuml;", ChrW(252))   '  u^
  myText = Replace(myText, "&szlig;", ChrW(223))  '  s^
End Sub ' GerFxUcAous *----*----*    *----*----*    *----*----*

Sub GerFxUcOthers(myText As String)
  Dim i As Integer
  Rem
  myText = Replace(myText, "&nbsp;", ChrW(160))
  myText = Replace(myText, "&iexcl;", ChrW(161))
  myText = Replace(myText, "&cent;", ChrW(162))
  myText = Replace(myText, "&pound;", ChrW(163))
  myText = Replace(myText, "&curren;", ChrW(164))
  myText = Replace(myText, "&yen;", ChrW(165))
  myText = Replace(myText, "&brvbar;", ChrW(166))
  Rem
  Rem
  myText = Replace(myText, "&copy;", ChrW(169))
  myText = Replace(myText, "&ordf;", ChrW(170))
  myText = Replace(myText, "&laquo;", ChrW(171))
  myText = Replace(myText, "&not;", ChrW(172))
  myText = Replace(myText, "&shy;", ChrW(173))
  myText = Replace(myText, "&reg;", ChrW(174))
  myText = Replace(myText, "&macr;", ChrW(175))
  Rem
  Rem
  myText = Replace(myText, "&sup2;", ChrW(178))
  myText = Replace(myText, "&sup3;", ChrW(179))
  Rem
  myText = Replace(myText, "&micro;", ChrW(181))
  Rem
  myText = Replace(myText, "&middot;", ChrW(183))
  myText = Replace(myText, "&cedil;", ChrW(184))
  myText = Replace(myText, "&sup1;", ChrW(185))
  myText = Replace(myText, "&ordm;", ChrW(186))
  myText = Replace(myText, "&raquo;", ChrW(187))
  myText = Replace(myText, "&frac14;", ChrW(188))
  myText = Replace(myText, "&frac12;", ChrW(189))
  myText = Replace(myText, "&frac34;", ChrW(190))
  myText = Replace(myText, "&iquest;", ChrW(191))
  myText = Replace(myText, "&Agrave;", ChrW(192))
  myText = Replace(myText, "&Aacute;", ChrW(193))
  myText = Replace(myText, "&Acirc;", ChrW(194))
  myText = Replace(myText, "&Atilde;", ChrW(195))
  myText = Replace(myText, "&Auml;", ChrW(196))
  myText = Replace(myText, "&Aring;", ChrW(197))
  myText = Replace(myText, "&AElig;", ChrW(198))
  myText = Replace(myText, "&Ccedil;", ChrW(199))
  myText = Replace(myText, "&Egrave;", ChrW(200))
  myText = Replace(myText, "&Eacute;", ChrW(201))
  myText = Replace(myText, "&Ecirc;", ChrW(202))
  myText = Replace(myText, "&Euml;", ChrW(203))
  myText = Replace(myText, "&Igrave;", ChrW(204))
  myText = Replace(myText, "&Iacute;", ChrW(205))
  myText = Replace(myText, "&Icirc;", ChrW(206))
  myText = Replace(myText, "&Iuml;", ChrW(207))
  myText = Replace(myText, "&ETH;", ChrW(208))
  myText = Replace(myText, "&Ntilde;", ChrW(209))
  myText = Replace(myText, "&Ograve;", ChrW(210))
  myText = Replace(myText, "&Oacute;", ChrW(211))
  myText = Replace(myText, "&Ocirc;", ChrW(212))
  myText = Replace(myText, "&Otilde;", ChrW(213))
  myText = Replace(myText, "&Ouml;", ChrW(214))
  Rem
  myText = Replace(myText, "&Oslash;", ChrW(216))
  myText = Replace(myText, "&Ugrave;", ChrW(217))
  myText = Replace(myText, "&Uacute;", ChrW(218))
  myText = Replace(myText, "&Ucirc;", ChrW(219))
  myText = Replace(myText, "&Uuml;", ChrW(220))
  myText = Replace(myText, "&Yacute;", ChrW(221))
  myText = Replace(myText, "&THORN;", ChrW(222))
  myText = Replace(myText, "&szlig;", ChrW(223))
  myText = Replace(myText, "&agrave;", ChrW(224))
  myText = Replace(myText, "&aacute;", ChrW(225))
  myText = Replace(myText, "&acirc;", ChrW(226))
  myText = Replace(myText, "&atilde;", ChrW(227))
  myText = Replace(myText, "&auml;", ChrW(228))
  myText = Replace(myText, "&aring;", ChrW(229))
  myText = Replace(myText, "&aelig;", ChrW(230))
  myText = Replace(myText, "&ccedil;", ChrW(231))
  myText = Replace(myText, "&egrave;", ChrW(232))
  myText = Replace(myText, "&eacute;", ChrW(233))
  myText = Replace(myText, "&ecirc;", ChrW(234))
  myText = Replace(myText, "&euml;", ChrW(235))
  myText = Replace(myText, "&igrave;", ChrW(236))
  myText = Replace(myText, "&iacute;", ChrW(237))
  myText = Replace(myText, "&icirc;", ChrW(238))
  myText = Replace(myText, "&iuml;", ChrW(239))
  myText = Replace(myText, "&eth;", ChrW(240))
  myText = Replace(myText, "&ntilde;", ChrW(241))
  myText = Replace(myText, "&ograve;", ChrW(242))
  myText = Replace(myText, "&oacute;", ChrW(243))
  myText = Replace(myText, "&ocirc;", ChrW(244))
  myText = Replace(myText, "&otilde;", ChrW(245))
  myText = Replace(myText, "&ouml;", ChrW(246))
  Rem
  myText = Replace(myText, "&oslash;", ChrW(248))
  myText = Replace(myText, "&ugrave;", ChrW(249))
  myText = Replace(myText, "&uacute;", ChrW(250))
  myText = Replace(myText, "&ucirc;", ChrW(251))
  myText = Replace(myText, "&uuml;", ChrW(252))
  myText = Replace(myText, "&yacute;", ChrW(253))
  myText = Replace(myText, "&thorn;", ChrW(254))
  myText = Replace(myText, "&yuml;", ChrW(255))
  '
  For i = 256 To 511
    myText = Replace(myText, "&#" & i & ";", ChrW(i))
  Next ' i
End Sub ' GerFxUcOthers *----*----*    *----*----*    *----*----*

Sub GerFxRvAeiou(prefixC As String, suffixC As String, myText As String)
  myText = Replace(myText, ChrW(194), prefixC & "A" & suffixC) ' A^
  myText = Replace(myText, ChrW(202), prefixC & "E" & suffixC) ' E^
  myText = Replace(myText, ChrW(206), prefixC & "I" & suffixC) ' I^
  myText = Replace(myText, ChrW(212), prefixC & "O" & suffixC) ' O^
  If prefixC = "" Then
    myText = Replace(myText, ChrW(219), "U_")                  ' U_
  Else
    myText = Replace(myText, ChrW(219), "_U")                  ' U_
  End If
  '
  myText = Replace(myText, ChrW(226), prefixC & "a" & suffixC) ' a^
  myText = Replace(myText, ChrW(234), prefixC & "e" & suffixC) ' e^
  myText = Replace(myText, ChrW(238), prefixC & "i" & suffixC) ' i^
  myText = Replace(myText, ChrW(244), prefixC & "o" & suffixC) ' o^
  If prefixC = "" Then
    myText = Replace(myText, ChrW(251), "u_")                  ' u_
  Else
    myText = Replace(myText, ChrW(251), "_u")                  ' u_
  End If
End Sub ' GerFxRvAeiou *----*----*    *----*----*    *----*----*    *----*----*

Sub GerFxRvAous(prefixC As String, suffixC As String, myText As String)
  myText = Replace(myText, ChrW(196), prefixC & "A" & suffixC) ' A^
  myText = Replace(myText, ChrW(214), prefixC & "O" & suffixC) ' O^
  myText = Replace(myText, ChrW(220), prefixC & "U" & suffixC) ' U^
  '
  myText = Replace(myText, ChrW(228), prefixC & "a" & suffixC) ' a^
  myText = Replace(myText, ChrW(246), prefixC & "o" & suffixC) ' o^
  myText = Replace(myText, ChrW(252), prefixC & "u" & suffixC) ' u^
  If suffixC = "e" Then
    myText = Replace(myText, ChrW(223), "ss") ' s^
  Else
    myText = Replace(myText, ChrW(223), prefixC & "s" & suffixC) ' s^
  End If
End Sub ' GerFxRvAous *----*----*    *----*----*    *----*----*

Sub GerFxRvOthers(myText As String)
  Dim i As Integer
  Rem
  myText = Replace(myText, ChrW(160), "&nbsp;")
  myText = Replace(myText, ChrW(161), "&iexcl;")
  myText = Replace(myText, ChrW(162), "&cent;")
  myText = Replace(myText, ChrW(163), "&pound;")
  myText = Replace(myText, ChrW(164), "&curren;")
  myText = Replace(myText, ChrW(165), "&yen;")
  myText = Replace(myText, ChrW(166), "&brvbar;")
  Rem
  Rem
  myText = Replace(myText, ChrW(169), "&copy;")
  myText = Replace(myText, ChrW(170), "&ordf;")
  myText = Replace(myText, ChrW(171), "&laquo;")
  myText = Replace(myText, ChrW(172), "&not;")
  myText = Replace(myText, ChrW(173), "&shy;")
  myText = Replace(myText, ChrW(174), "&reg;")
  myText = Replace(myText, ChrW(175), "&macr;")
  Rem
  Rem
  myText = Replace(myText, ChrW(178), "&sup2;")
  myText = Replace(myText, ChrW(179), "&sup3;")
  Rem
  myText = Replace(myText, ChrW(181), "&micro;")
  Rem
  myText = Replace(myText, ChrW(183), "&middot;")
  myText = Replace(myText, ChrW(184), "&cedil;")
  myText = Replace(myText, ChrW(185), "&sup1;")
  myText = Replace(myText, ChrW(186), "&ordm;")
  myText = Replace(myText, ChrW(187), "&raquo;")
  myText = Replace(myText, ChrW(188), "&frac14;")
  myText = Replace(myText, ChrW(189), "&frac12;")
  myText = Replace(myText, ChrW(190), "&frac34;")
  myText = Replace(myText, ChrW(191), "&iquest;")
  myText = Replace(myText, ChrW(192), "&Agrave;")
  myText = Replace(myText, ChrW(193), "&Aacute;")
  myText = Replace(myText, ChrW(194), "&Acirc;")
  myText = Replace(myText, ChrW(195), "&Atilde;")
  myText = Replace(myText, ChrW(196), "&Auml;")
  myText = Replace(myText, ChrW(197), "&Aring;")
  myText = Replace(myText, ChrW(198), "&AElig;")
  myText = Replace(myText, ChrW(199), "&Ccedil;")
  myText = Replace(myText, ChrW(200), "&Egrave;")
  myText = Replace(myText, ChrW(201), "&Eacute;")
  myText = Replace(myText, ChrW(202), "&Ecirc;")
  myText = Replace(myText, ChrW(203), "&Euml;")
  myText = Replace(myText, ChrW(204), "&Igrave;")
  myText = Replace(myText, ChrW(205), "&Iacute;")
  myText = Replace(myText, ChrW(206), "&Icirc;")
  myText = Replace(myText, ChrW(207), "&Iuml;")
  myText = Replace(myText, ChrW(208), "&ETH;")
  myText = Replace(myText, ChrW(209), "&Ntilde;")
  myText = Replace(myText, ChrW(210), "&Ograve;")
  myText = Replace(myText, ChrW(211), "&Oacute;")
  myText = Replace(myText, ChrW(212), "&Ocirc;")
  myText = Replace(myText, ChrW(213), "&Otilde;")
  myText = Replace(myText, ChrW(214), "&Ouml;")
  Rem
  myText = Replace(myText, ChrW(216), "&Oslash;")
  myText = Replace(myText, ChrW(217), "&Ugrave;")
  myText = Replace(myText, ChrW(218), "&Uacute;")
  myText = Replace(myText, ChrW(219), "&Ucirc;")
  myText = Replace(myText, ChrW(220), "&Uuml;")
  myText = Replace(myText, ChrW(221), "&Yacute;")
  myText = Replace(myText, ChrW(222), "&THORN;")
  myText = Replace(myText, ChrW(223), "&szlig;")
  myText = Replace(myText, ChrW(224), "&agrave;")
  myText = Replace(myText, ChrW(225), "&aacute;")
  myText = Replace(myText, ChrW(226), "&acirc;")
  myText = Replace(myText, ChrW(227), "&atilde;")
  myText = Replace(myText, ChrW(228), "&auml;")
  myText = Replace(myText, ChrW(229), "&aring;")
  myText = Replace(myText, ChrW(230), "&aelig;")
  myText = Replace(myText, ChrW(231), "&ccedil;")
  myText = Replace(myText, ChrW(232), "&egrave;")
  myText = Replace(myText, ChrW(233), "&eacute;")
  myText = Replace(myText, ChrW(234), "&ecirc;")
  myText = Replace(myText, ChrW(235), "&euml;")
  myText = Replace(myText, ChrW(236), "&igrave;")
  myText = Replace(myText, ChrW(237), "&iacute;")
  myText = Replace(myText, ChrW(238), "&icirc;")
  myText = Replace(myText, ChrW(239), "&iuml;")
  myText = Replace(myText, ChrW(240), "&eth;")
  myText = Replace(myText, ChrW(241), "&ntilde;")
  myText = Replace(myText, ChrW(242), "&ograve;")
  myText = Replace(myText, ChrW(243), "&oacute;")
  myText = Replace(myText, ChrW(244), "&ocirc;")
  myText = Replace(myText, ChrW(245), "&otilde;")
  myText = Replace(myText, ChrW(246), "&ouml;")
  Rem
  myText = Replace(myText, ChrW(248), "&oslash;")
  myText = Replace(myText, ChrW(249), "&ugrave;")
  myText = Replace(myText, ChrW(250), "&uacute;")
  myText = Replace(myText, ChrW(251), "&ucirc;")
  myText = Replace(myText, ChrW(252), "&uuml;")
  myText = Replace(myText, ChrW(253), "&yacute;")
  myText = Replace(myText, ChrW(254), "&thorn;")
  myText = Replace(myText, ChrW(255), "&yuml;")
  '
  For i = 256 To 511
    myText = Replace(myText, ChrW(i), "&#" & i & ";")
  Next ' i
End Sub ' GerFxRvOthers *----*----*    *----*----*    *----*----*    *----*----*
inserted by FC2 system