Ver.XX.YY.ZZZZ のとき&HXXYYZZZZ 16進文字列8桁にしたいのでHEX$(VERSION,8)→"03030100" これをMID$()やLEFT$()、RIGHT$()で切り分け、最初のXX部分は左から2文字の"03"。この場合VAL("03")としても同じ値ですが正しくはVAL("&H"+"03") 次のYYのところも同じ。 残りのZZZZですがこれはどうやら上位バイトと下位バイトがひっくり返った状態です。 (リトルエンディアン、ビッグエンディアンで検索すると何かわかるかもw) "01":"00" がZZzzとしたらzzZZが正しい値。なので"00":"01"と直す必要があります。 で、この場合もVAL("0001")としても値は同じですが、16進数なのでVAL("&H"+"0001")が正解。 …だと思われます。