Вопрос № 147122: Имеется текст латинскими буквами. Задача состоит в том, чтобы все латинские буквы заменить на соответствующие им в клавиатурной раскладке русские. Например, F на А, Q на Й ну и т.д. С какого края копать? Знаю как определять символ нажатой кл...Вопрос № 147206: Добрый день! Я решила пять задач в VBA. Мне нужно поместить их все в один файл Excel. Т.е. при открытии страницы Excel на экране должны видеть пять кнопок "1
задача". "2 задача" и т.д. при нажатии на каждую кнопку срабатывала соот...
Вопрос № 147.122
Имеется текст латинскими буквами. Задача состоит в том, чтобы все латинские буквы заменить на соответствующие им в клавиатурной раскладке русские. Например, F на А, Q на Й ну и т.д. С какого края копать? Знаю как определять символ нажатой клавиши , но как определить значение клавиши в нужной мне раскладке. Буду приветствовать не код, а подсказка по направлению.
Отвечает: Шичко Игорь
Здравствуйте, Витер Александр Анатольевич! Могу вам предложить такой вариант решения данной проблемы. Создать два массива соответствия английских и русских символов. Далее посимвольно менять. Примеры процедур - в приложении.
Приложение:
Ответ отправил: Шичко Игорь (статус: 10-ый класс)
Ответ отправлен: 14.10.2008, 12:40
Отвечает: HookEst
Здравствуйте, Витер Александр Анатольевич! например:
Код:
Declare Function GetKeyboardLayoutList Lib "user32" (ByVal nBuff As Long, ByRef lpList As Long) As Long Declare Function ToAsciiEx Lib "user32" (ByVal uVirtKey As Long, ByVal uScanCode As Long,
lpKeyState As Byte, lpChar As Integer, ByVal uFlags As Long, ByVal dwhkl As Long) As Long
Sub t() Dim r As Range Dim ret As Long Dim code As Integer Dim i As Long Dim lpList(1) As Long
Set r = Worksheets(1).Rows(1) ret = GetKeyboardLayoutList(2, ByVal VarPtr(lpList(0))) For i = 1 To 255 r.Cells(1) = i ret = ToAsciiEx(i, 0, 0, code, 0, lpList(0)) r.Cells(2) = Chr(code) ret = ToAs
ciiEx(i, 0, 0, code, 0, lpList(1)) r.Cells(3) = Chr(code) Set r = r.Offset(1) Next i End Sub
даст 3 столбца: в первом виртуальный код клавиши во втором соответствующий ему символ для 1 раскладки в третьем соответствующий ему символ для 2 раскладки CTRL,SHIFT,ALT - не учитывал, для простоты, если надо, см. аргументы ToAscii Успехов
Ответ отправил: HookEst (статус: Специалист)
Ответ отправлен: 17.10.2008, 09:16 Оценка за ответ: 5 Комментарий оценки: Как раз то, что нужно. Сделаю программу — выложу.
Вопрос № 147.206
Добрый день! Я решила пять задач в VBA. Мне нужно поместить их все в один файл Excel. Т.е. при открытии страницы Excel на экране должны видеть пять кнопок "1 задача". "2 задача" и т.д. при нажатии на каждую кнопку срабатывала соответствующая задача. Как поместить эти кнопки, без создания макросов?
Отправлен: 14.10.2008, 19:35
Вопрос задал: Rm2003
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Тесленко Евгений Алексеевич
Здравствуйте Rm2003 ! Если Ваши процедуры - "задачи в VBA" размещены в модуле книги, после размещения кнопок на листе достаточно назначить каждой кнопке соответствующую процедуру (макрос). Создание дополнительного кода не потребуется. Евгений.