Я считаю, что мы можем улучшить это немного больше. Код rpetrich будет работать, но, возможно, только благодаря удаче. Параметр вызова API должен быть TCHAR (здесь на самом деле WCHAR), а не Long. Это также означает, что вам не нужно переходить к длинному или маскировать с помощью & HFFFF. Это, кстати, Integer и добавляет здесь неявное преобразование в Long. Возможно, он имел в виду & HFFFF & в этом случае?
Кроме того, для совместимости с Win9X лучше всего явно вызвать оболочку UnicoWS для этого вызова API. UnicoWS.dll может потребоваться развернуть, но по крайней мере мы получаем эту возможность. С другой стороны, возможно, из VB6 это автоматически перенаправлено, у меня не установлен Win9X для его тестирования.
Option Explicit
Private Declare Function IsCharAlphaW Lib "unicows" (ByVal WChar As Integer) As Long
Private Function IsLetter(Character As String) As Boolean
IsLetter = IsCharAlphaW(AscW(Character))
End Function
Private Sub Main()
MsgBox IsLetter("^")
MsgBox IsLetter("A")
MsgBox IsLetter(ChrW$(&H34F))
MsgBox IsLetter(ChrW$(&HFEF0))
MsgBox IsLetter(ChrW$(&HFEFC))
End Sub