Навигация:  Макросы >

Макрос-переводчик

Print this Topic Previous pageReturn to chapter overviewNext page
скрыть/показать скрытый текст

Работающие в иностранных компаниях сотрудники часто вынуждены готовить по два одинаковых отчета для отечественного и зарубежного своего начальства - на русском и английском языках. Цифры в этих отчетах, естественно, одинаковые, а меняются только подписи, заголовки и другой текст.

Такую задачу можно решить более изящно. Создаем новый лист в таком отчете и называем его "Словарь". Выписываем на этот лист в любом порядке все слова, которые надо автоматически переводить. Для каждого языка добавляем новый столбец, например, так:

Потом переходим в редактор Visual Basic (меню Сервис - Макрос - Редактор Visual Basic), вставляем новый модуль (меню Insert - Module) и копируем туда текст вот этих двух макросов:

 

Sub Translate() 'этот макрос переводит слова с одного языка на другой
Dim cell1 as Range, cell2 As Range
Dim i as Long, Langs As Long

Langs = 3 'количество языков перевода, включая русский

    For Each cell1 In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
        For Each cell2 In Worksheets("Словарь").Cells.SpecialCells(xlCellTypeConstants)
            If cell1.Value = cell2.Value Then
                i = cell2.Column
                If i = Langs Then i = 1 Else i = i + 1
                cell1.Value = Worksheets("Словарь").Cells(cell2.Row, i).Value
                GoTo 1
            End If
        Next cell2
1:   Next cell1
End Sub

Sub ScanText() 'этот макрос копирует все слова текущей книги в
' столбец А на лист "Словарь"
    i = 0
    For Each sht In ActiveWorkbook.Sheets
    If sht.Name = "Словарь" Then GoTo 2
    For Each cell In sht.Cells.SpecialCells(xlCellTypeConstants)
        c = Asc(cell.Value)
        If (c >= 65 And c <= 122) Or (c >= 192 And c <= 255) Then
            cell.Copy Destination:=Worksheets("Словарь").Range("A1").Offset(i, 0)
            i = i + 1
        End If
    Next cell
2:  Next sht
End Sub

Теперь можно вернуться на лист с отчетом и запустить макрос Translate через меню Сервис - Макрос - Макросы (Tools - Macro - Macros). Все слова найденные в на листе Словарь будут переведены на другой язык. Запуская макрос несколько раз, мы будем по кругу переводить наш отчет последовательно на русский-английский-немецкий-русский-английский-и т.д.

Макрос ScanText поможет при создании листа "Словарь". Этот макрос сканирует все листы текущей книги и копирует все текстовые ячейки (начинающиеся с букв русского или латинского алфавита) в первый столбец листа "Словарь". Вам останется лишь дописать перевод этих слов в соседние столбцы.

к библиотеке   3GL   к оглавлению   к экономической информатике   4GL - визуальным средам

Знаете ли Вы, что такое "усталость света"?
Усталость света, анг. tired light - это явление потери энергии квантом электромагнитного излучения при прохождении космических расстояний, то же самое, что эффект красного смещения спектра далеких галактик, обнаруженный Эдвином Хабблом в 1926 г.
На самом деле кванты света, проходя миллиарды световых лет, отдают свою энергию эфиру, "пустому пространству", так как он является реальной физической средой - носителем электромагнитных колебаний с ненулевой вязкостью или трением, и, следовательно, колебания в этой среде должны затухать с расходом энергии на трение. Трение это чрезвычайно мало, а потому эффект "старения света" или "красное смещение Хаббла" обнаруживается лишь на межгалактических расстояниях.
Таким образом, свет далеких звезд не суммируется со светом ближних. Далекие звезды становятся красными, а совсем далекие уходят в радиодиапазон и перестают быть видимыми вообще. Это реально наблюдаемое явление астрономии глубокого космоса. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution