- ベストアンサー
16進法から10進法に変えたい vba
Sub sinsuu() MsgBox Val("f1") End Sub Val関数は、16進法から10進法に変換する関数ではないのでしょうか? 0が返ってきてしまいます。 F1を241に変換するには、どの関数を使うべきでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! No.1さんが紹介してくださっているURLの通り 16進数表示の「F1」を10進数にする場合は Sub sinsuu() MsgBox CLng("&h" & "F1") End Sub といった感じでしょうかね! 仮にA1セルに入っている16進数の「文字列」を10進数で表示する場合は Sub Sample1() MsgBox CLng("&h" & Range("A1")) End Sub のようになると思います。 ※ Val関数は「文字列」を「数値」として有効なデータを返すための関数!という説明がありますので、 「F1」は数値としては認識できないため「0」という表示になると思います。 仮に Val("1F") だと「1」が返るはずです 「1F」を 「10ABC120」等に変えても頭の「10」までしか数値として認識できませんので、 表示されるのは「10」だけです。 途中に文字列がある場合その後の数値はすべて無視されてしまいます。m(_ _)m
お礼
ありがとうございました。