Word VBA Макросы: Автоматическая раскладка клавиатуры.

Автор Irina18, 16 сентября 2017, 19:46

Irina18

Привет форумчанам. Знаю, что в Excel есть возможность переключать клавиатуру с кириллицы на латиницу и обратно с помощью макроса. Код в Excel следующий
Спойлер
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
[свернуть]
Есть ли возможность сделать такое же в таблице в документе Word? У меня Word 2007.
Файл во вложении.

[вложение удалено администратором]

Администратор

В свойстве каждого "поля формы" в списке "при входе" выберите макрос "Klava". Я сделал для нескольких, чтобы протестировать, но для всех не стал делать.
Selection.Rows(1).Index - это порядковый номер строки таблицы, в которой находится текстовый курсор.

Макрос
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

Sub Klava()
    Select Case Selection.Rows(1).Index
        Case 1 To 3, 8 To 11
            ActivateKeyboardLayout kb_lay_ru, 0
        Case 4 To 7
            ActivateKeyboardLayout kb_lay_en, 0
    End Select
End Sub
[свернуть]

[вложение удалено администратором]

Irina18

В очередной раз огромное спасибо. Приятных выходных.