Задать вопрос
c0rp
@c0rp
Разработчик

Конвертирование старого текста?

Всем доброго времени суток!

Начну издалека. Мой дед профессор, пишет книги в MS Word на Win 98. Компьютер старый, казахский шрифт, которым он пользуется, тоже. В то время никто не знал что такое Unicode, развелось много казахских шрифтов с блэкджеком и т.д. Дед попросил меня перенести все книги на новый компьютер, т.к. на старом закончилось место, но там они открываются с кракозябрами. Хотелось бы конвертировать все его книги в новый Times New Roman, чтобы можно было легко их опубликовать в будущем. Можно было бы это сделать при помощи Ctrl + H.


Помогите написать макрос (для Office 2007 если это важно) который смог бы это сделать. Вот сслыка на папку где лежат те самые старые казахские шрифты и небольшой кусок одной из книг.

Задавал аналогичный вопрос на stackoverflow, возможно ответ, который мне дали, наведет кого-то на правильные мысли.
  • Вопрос задан
  • 3860 просмотров
Подписаться 5 Оценить 3 комментария
Решения вопроса 1
c0rp
@c0rp Автор вопроса
Разработчик
Рабочий вариант

Sub Zamena()
'
' Zamena Макрос
'
'
Dim sTab As String
    sTab = "ӘҒҚҢӨҰҮҺәғқңөұүһАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
    Selection.Find.ClearFormatting
    Selection.Find.Font.Shadow = True
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Font.Shadow = False
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    
    Selection.Find.Font.Shadow = False
    Selection.Find.Replacement.Font.Shadow = True
    For i = 1 To Len(sTab)
        With Selection.Find
            .Text = ChrW(i + 175)
            .Replacement.Text = Mid(sTab, i, 1)
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = True
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        Selection.Find.Text = Selection.Find.Text
    Next i
    Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
            .Text = ChrW(105)
            .Replacement.Text = "і"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = True
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        Selection.Find.Text = Selection.Find.Text
        
        With Selection.Find
            .Text = ChrW(73)
            .Replacement.Text = "І"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = True
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        Selection.Find.Text = Selection.Find.Text
        
    ' kazakh language
    Selection.WholeStory
    Selection.LanguageID = WdLanguageID.wdKazakh
    Application.CheckLanguage = False
    Selection.Collapse Direction:=wdCollapseStart
End Sub
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ipswitch
@ipswitch
IT-инженер
Можно установить на старый компьютер Adobe Acrobat 4.0 или 5.0, конвертировать всё в PDF. Сохранность будет «на века», и никаких проблем со шрифтами.
а новые книги писать уже иначе.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы