Val 関数

更新 : 2008 年 7 月

指定した文字列に含まれる数値を適切なデータ型に変換して返します。

Public Overloads Function Val(ByVal InputStr As String) As Double
' -or-
Public Overloads Function Val(ByVal Expression As Object) As Double
' -or-
Public Overloads Function Val(ByVal Expression As Char) As Integer

パラメータ

  • Expression, InputStr
    必ず指定します。有効な文字列型 (String) の式、オブジェクト型 (Object) の変数、または char 型 (Char) の値。Expression がオブジェクト型 (Object) である場合、その値は文字列型 (String) に変換できる必要があります。変換できない場合、ArgumentException エラーが発生します。

例外

例外の種類

エラー番号

条件

OverflowException

6

InputStr が大きすぎます。

ArgumentException

438

オブジェクト型 (Object) の式を文字列型 (String) に変換できません。

非構造化エラー処理を使用する Visual Basic 6.0 アプリケーションをアップグレードする場合は、「エラー番号」列を参照してください(エラー番号を Number プロパティ (Err オブジェクト) と照らし合わせます)。しかし、可能な限り、このエラー処理は Visual Basic の構造化例外処理の概要 で置き換えてください。

メモ :

エラー番号 13 の InvalidCastException 例外は、数字の書式設定が通常とは異なる場合に発生します。このエラーの詳細については、「型が一致しません。(Visual Basic)」を参照してください。たとえば、次に示すコードでは例外が発生します。

' These examples cause run-time errors.

'Console.WriteLine(Val("1.34%"))

'Console.WriteLine(Val("1.34&"))

Double および Integer として書式設定された数値と、Long 型文字との間の競合は、文字列内で非表示でない場合にはコンパイラによってキャッチされます。

' These examples cause compiler errors.

'Dim m = 1.34%

'Dim n = 1.34&

解説

文字列中に数字以外の文字が見つかると、Val 関数は読み込みを中止します。円記号 (\) やコンマ (,) など、通常は数値の一部と見なされる記号や文字も、Val 関数は数値として解釈しません。ただし、Val 関数は基数を示すプリフィックス &O (8 進数) や &H (16 進数) は認識します。引数の文字列中に含まれる空白、タブ、ライン フィードは無視されます。

次のように呼び出すと、1615198 という値を返します。

Val(" 1615 198th Street N.E.") 

次のように呼び出すと、10 進数の -1 という値を返します。

Val("&HFFFF") 
メモ :

Val 関数は、ピリオド (.) だけを有効な小数点の記号として認識します。ピリオドと異なる小数点の記号が使われている可能性があるときは、Val 関数で文字列を数値に変換する代わりに、CDbl 関数または CInt 関数を使用してください。特定のカルチャでの数字の文字列表記を数値に変換するには、数値型の Parse(String, IFormatProvider) メソッドを使用します。たとえば、文字列を Double に変換する場合は Double.Parse を使用します。

使用例

次の例では、Val 関数を使用して核文字列に含まれている数字を返します。Val は、数値、数値の修飾子、数値の区切り文字、空白として解釈できない文字が最初に現れた時点で変換を中止します。

Dim valResult As Double
' The following line of code sets valResult to 2457.
valResult = Val("2457")
' The following line of code sets valResult to 2457.
valResult = Val(" 2 45 7")
' The following line of code sets valResult to 24.
valResult = Val("24 and 57")

必要条件

名前空間 : Microsoft.VisualBasic

モジュール : Conversion

アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)

参照

参照

Str 関数

データ型変換関数

OverflowException

InvalidCastException

ArgumentException

履歴の変更

日付

履歴

理由

2008 年 7 月

InvalidCastException 例外が発生する場合に関する説明を「例外」セクションに追加。

カスタマ フィードバック