結論からいうとIsNumericで16進数かどうかのチェックができます。!!
"&h"もしくは"&H"で始まる文字列をIsNumericでチェックすると、
有効な16進数の場合にTRUEが返却されます。
下記の例を1行ずつイミディエイトウインドウに貼り付けて実行してみてください。
MyVar = "&h5555ff": ? IsNumeric(MyVar) 'Trueを返します(小文字でもok)
MyVar = "&hG1": ? IsNumeric(MyVar) 'Falseを返します("G"が16進数でない)
MyVar = "&HA9": ? IsNumeric(MyVar) 'Trueを返します(大文字でもok)
MyVar = "A9": ? IsNumeric(MyVar) 'Falseを返します(&hがないため数字として無効)
MyVar = "&hffffffffffffffff": ? IsNumeric(MyVar) 'Trueを返します(16桁までok)
MyVar = "&h10000000000000000": ? IsNumeric(MyVar) 'Falseを返します(17桁はNG)
因みに8進数の場合は"&o"です。
MyVar = "&o7": ? IsNumeric(MyVar) 'Trueを返します
MyVar = "&O8": ? IsNumeric(MyVar) 'Falseを返します
さらに文字列でも有効な数字となります。
MyVar = "1": ? IsNumeric(MyVar) 'Trueを返します
RGB色を16進数で入力するときのチェックとして使いました。
あまり用途がないかもしれませんね。。。