VB: determinando se uma string está em caixa alta
Declare a API abaixo em um módulo padrão.
Public Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" (ByVal _ cChar As Byte) As Boolean
A função a seguir checa se a string informada como argumento é composta apenas de caracteres em caixa alta, sem dígitos e sem caracteres especiais. Você pode usá-la para checar um único caractere também.
Public Function IsStringUpper(ByVal sText As String) As Boolean
Dim i As Integer
IsStringUpper = True
' para cada caractere na string
For i = 1 To Len(sText)
' se não está em caixa alta, retorna False e sai do loop
If IsCharUpper(Asc(Mid$(sText, i, 1))) = False Then
IsStringUpper = False
Exit For
End If
Next i
End Function