Código proporcionado por Juan M. Afán de Ribera.

Pregunta: ¿Cómo puedo activar o desactivar por código la tecla de Bloque
Mayúsculas?. Gracias.

Respuesta: Pega en un módulo estandar el siguiente código y la función 
ActivarMayusculas, a la cual puedes llamar desde cualquier lugar de tu 
aplicación con "ActivarMayusculas True" o "ActivarMayusculas False" 
(sin las comillas, por supuesto):

'***************** Código ******************
' Función ActivarMayusculas.
' Propósito: Activar/desactivar tecla bloque
'            Mayúsculas
' Juan M. Afan de Ribera          Enero 2003
'-------------------------------------------

Const VK_CAPITAL = &H14

' Tipo definido por el usuario que contendrá
' una matriz con los valores del teclado
Private Type KeyboardBytes
   kbByte(0 To 255) As Byte
End Type

' Función API que lee el estado del teclado
' y lo devuelve en la matriz de kbByte
Private Declare Function GetKeyboardState _
   Lib "user32" _
   (kbArray As KeyboardBytes) As Long
   
' Función API que establece el estado del
' teclado, según la matriz de kbByte
Private Declare Function SetKeyboardState _
   Lib "user32" _
   (kbArray As KeyboardBytes) As Long

Dim kbArray As KeyboardBytes

Function ActivarMayusculas(activar As Boolean)
    
   ' Obtener el estado actual del teclado
   GetKeyboardState kbArray
   
   ' según el valor pasado a la función
   ' se activa/desactiva Bloq/Mayús
   If activar = True Then
      kbArray.kbByte(VK_CAPITAL) = 1
   Else
      kbArray.kbByte(VK_CAPITAL) = 0
   End If
   
   ' Actualizar el estado del teclado
   SetKeyboardState kbArray

End Function
'****************** Fin código ******************

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)