ник: ?.?.
Re: как програмно в VBA переключить язык ввода с клавиатуры Объявить в модуле:
Declare Function LoadKeyboardLayout Lib "user32" Alias _
"LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
Переключение клавиатуры на английский:
LoadKeyboardLayout "00000409", 1 English
На русский:
LoadKeyboardLayout "00000419", 1 Русский
Нажатие на клавишу имитирует инструкция SendKeys. Посмотрите хелп.
Для ваших случаев:
SendKeys "{CAPSLOCK}"
SendKeys "{NUMLOCK}"