文字列から取り出した数値を返します。
使用例
表記例 | 戻り値例 | 説明 |
---|---|---|
Val("12345人") | 12345 | 後で見るように、数値以外の文字が含まれるとそこで読み込みが止まりますが、この場合は数値が正しく返されます |
Val("12345.67") | 12345.67 | 小数点は数値の一部とみなされます |
Val(" 12 345.67") | 12345.67 | スペース(全角/半角)があっても単に取り除かれるだけで、その前後のにある数字をつなげたものが1つの数値として返されます |
Val(" 12.34 56.78") | 12.3456 | 2つ目の小数点は数値とみなされず、その前の数値が返されます |
Val("&O77") | 63 | 8進数表記は10進数に変換されます |
Val("&HFF") | 255 | 16進数表記は10進数に変換されます |
Val("12,345.67") | 12 | カンマは数値の一部とみなされず、その前の数値が返されます |
Val("12345.67") | 0 | 全角は数値とみなされません。ただし出力は0となります |
Val("abc12345.67") | 0 | 英字や漢字等から始まる場合も0が返されます |
Val(#2015/09/16 12:34:56#) | 2015 | 日付を指定した場合でも"/"の前までは数値とみなされます |
書式
Val(文字列)
備考
Var関数と間違えるとエラーに見舞われますので注意してください_ _)文字が現れるまでの数値部分を取り出してくれるというだけの関数です。\やカンマがあるだけでもそれ以降は返されませんし、ましてや漢字等を完全に取り除いてくれるような機能はありません。さらに全角数字も0になるなど注意すべき点は多く、使い勝手はそれほどよくありません。
\やカンマがあっても変換したり、全角数字を数値に変換したい場合はCInt関数(こちら)などを使ってください。
なお、文字列から数字(1,2,3…)だけすべて取り出したい、という場合は下記の記事が参考になるかもしれません。