Для записи макроса с помощью встроенного языка программирования Visual Basic введите команду Сервис, Макрос, Редактор Visual Basic – открывается окно разработки проекта.
Введите команду Insert, Module – открывается окно разработки программы Module1. Введите команду Insert, Procedure – открывается окно добавления процедуры Add Procedure. Введите имя процедуры, например, Codirovca, установите переключатели Sub – ключевое слово заголовка процедуры и Public – общая (процедура будет доступна всем формам проекта) и щелкните по кнопке ОК – программа возвращается в окно проекта Module1. В этом окне появится шаблон процедуры, две строки команд между которыми необходимо записать текст программы:
Public Sub Codirovca()
End Sub
Rem Программа перекодировки текста с русского на английский и наоборот
Public Sub Codirovka() ‘ заголовок процедуры
On Error Resume Next ‘ обработчик ошибок
‘ Объявление переменных:
Dim n As Integer, strSetRus As String, strSetEng As String
Dim strMisStr As String, strCurrChar As String
Dim strNewStr As String, numChrPos As Integer
‘ strMisStr – пременная для хранения ошибочного текста
strMisStr = Selection.Text ‘ присвоение выделенной строки переменной
‘ strSetEng – строка, содержащая символы английского языка
strSetEng = "QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>qwertyuiop[]asdfghjkl; zxcvbnm,."
‘ strSetRus - строка, содержащая символы русского алфавита
‘ русские и английские символы записаны не в алфавитном порядке,
‘ а в соответствии с раскладкой клавиатуры
strSetRus="ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЯЧСМИТЬБЮйцукенгшщзхъфы
вапролджячсмитьбю"
‘ цикл: извлекается символ из строки с ошибочным текстом и сравнивается со
‘ строками, содержащими английский и русский текст. Если в ошибочной
‘ строке английский текст, то он будет заменен на русский и наоборот
‘ исправленный текст помещается в переменную strNewStr
For n = 1 To Len(strMisStr)
strCurrChar = Mid(strMisStr, n, 1)
numChrPos = InStr(strSetEng, strCurrChar)
If numChrPos <> 0 Then
strCurrChar = Mid(strSetRus, numChrPos, 1)
Else
numChrPos = InStr(strSetRus, strCurrChar)
strCurrChar = Mid(strSetEng, numChrPos, 1)
End If
strNewStr = strNewStr & strCurrChar
Next n
‘ выделенному тексту присваивается новая строка
Selection.Text = strNewStr
End Sub
Когда программа будет написана, сохраните ее на диске командой File, Save Normal, а затем вернитесь в документ командой File, Close and Returnto Microsoft Word. Наша программа попала в список макросов.
Чтобы применить ее, выделите ошибочный текст и введите команду Сервис, Макрос, Макросы. Выделите макрос Codirovka и щелкните по кнопке Выполнить. Для удобства использования назначьте макрос комбинации клавиш или кнопке панели инструментов, как описано выше в данном разделе.
[БВЛ1]