Данный макрос автоматизирует процесс переключения раскладки клавиатуры (смену языков ввода) при работе с таблицами в Excel.К примеру, вы заносите данные в таблицу, где в некоторые столбцы требуется вводить русские слова (фамилия, имя, и т.п.), а в другие столбцы - английские (марка и модель авто, и т.д.) Чтобы каждый раз не переключать раскладку вручную - можно воспользоваться WinAPI функцией ActivateKeyboardLayout Вставьте этот код в модуль листа: Private Declare Function ActivateKeyboardLayout _ Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long Const kb_lay_ru As Long = 68748313, kb_lay_en As Long = 67699721 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Select Case Target.Column ' в зависимости от номера столбца активной ячеки Case 1 To 3, 6 ' для столбцов Имя, Фамилия, Номер машины, Цвет ВключитьРусскуюРаскладку Case 4, 5: ' для столбцов Марка авто, Модель ВключитьАнглийскуюРаскладку Case Else: ' ничего не делаем (оставляем текущую раскладку) End Select End Sub Sub ВключитьРусскуюРаскладку() ' Переключить на русский язык x = ActivateKeyboardLayout&(kb_lay_ru, 0) End Sub Sub ВключитьАнглийскуюРаскладку() ' Переключить на английский язык x = ActivateKeyboardLayout&(kb_lay_en, 0) End Sub
|
|||||||

Комментарии
Чтобы переключение раскладки клавиатуры работало для определённых диапазонов ячеек,
замените макрос Worksheet_SelectionChange следующим кодом:
Select Case False
Case Intersect(Target, [a2:b4]) Is Nothing
ВключитьРусскуюРаскладку ' при выделении ячейки в диапазоне a2:b4
Case Intersect(Target, [e:h]) Is Nothing
ВключитьАнглийскуюРаскладку ' при выделении ячейки в столбцах с E по H
Case Intersect(Target, [k6:k65000]) Is Nothing
ВключитьРусскуюРаскладку ' при выделении ячейки в диапазоне k6:k65000
Case Else: ВключитьАнглийскуюРаскладку ' для остальных ячеек
End Select
End Sub
А как исправить этот макрос для определенного массива?
Номера раскладок клавиатуры для разных языков:
Интересует переключение раскладок для других языков. Где можно посмотреть номера раскладок клавиатур для других языков?
а как тоже самое замутить с capslock'ом
Отправить комментарий