Friday, June 15, 2012

Microsoft Office дээр арзайсан текстийг юникод рүү хөрвүүлэх (ArialMon буюу Windows 1251-ыг Arial буюу Unicode руу хөрвүүлэх)

1. MS Office Word-ийг нээнэ.
2. View цэснээс Macros -> View Macros-г сонгоно.

3. Гарч ирэх цонхны Macro name талбарт ямар ч хамаагүй нэр бичнэ. /Жич: дундаа хоосон зайтай байж болохгүй/


4. Үүсгэх Macro-ийнхээ нэрийг өгөөд Create товчийг дарна.
5. Гарч ирэх цонхон дахь кодыг бүгдийг нь сонгож (Select All - Ctrl+A) устгаад оронд доорх Macro кодыг хуулна.

Macro код:

Sub ArialMon_to_Arial()
Max = ActiveDocument.Characters.Count
Selection.HomeKey Unit:=wdStory


= 1
= Selection.MoveRight(wdCharacter, 1, wdExtend)
Char = Selection.Text


While (<= Max)
    
    acsii_code = AscW(Char)
    Select Case (acsii_code)
    
    Case 168
        uni_code = 1025
        Selection.TypeText Text:=ChrW(uni_code)
    Case 170
        uni_code = 1256
        Selection.TypeText Text:=ChrW(uni_code)
    Case 175
        uni_code = 1198
        Selection.TypeText Text:=ChrW(uni_code)
    Case 184
        uni_code = 1105
        Selection.TypeText Text:=ChrW(uni_code)
    Case 186
        uni_code = 1257
        Selection.TypeText Text:=ChrW(uni_code)
    Case 191
        uni_code = 1199
        Selection.TypeText Text:=ChrW(uni_code)
    Case 192 To 255
        uni_code = acsii_code + 848
        Selection.TypeText Text:=ChrW(uni_code)
    Case Else
       r = Selection.MoveRight(wdCharacter, 1, wdMove)
    End Select
    i = i + 1
    r = Selection.MoveRight(wdCharacter, 1, wdExtend)
    Char = Selection.Text
Wend
    
End Sub

6. Хадгалаад (Ctrl+S) Macro цонхоо хаана.
7. Arial буюу Unicode руу хөрвүүлэх document-ээ нээгээд View цэснээс Macros -> View Macros-г сонгоно.

8. Гарч ирэх цонхноос үүсгэсэн Macro-гоо сонгоод (Жишээн дээр бол ArialMon_to_Unicode) Run товчийг дарна.

Ингээд л бүх асуудал шийдэгдэнэ.
Good luck!

3 comments:

  1. Excel дээр энэ код "Max = ActiveDocument.Characters.Count" гэдэг дээрээ алдаа заагаад байна. Word дээр асуудалгүй. Арай өөр байх юм болов уу?

    ReplyDelete
  2. MS Excel дээр MonUni-гээс өөр алдаагүй хөрвүүлдэг хөрвүүлэгч байна уу? MonUni томъёо эвдэх, хүснэгтийн бүтцийг эвдэх дутагдлуудтай байх юм

    ReplyDelete
  3. Энэ macro-г excel дээр ажиллуулах гэсэн болохгүй байна лээ. Тэгэхээр нь хамгийн амарханаар excel дээрх өгөгдлийг word дээр хуулж тавьж байгаад macro-гоо ажиллуулсан.

    ReplyDelete